Concurrent Versions System CVS Concurrent Versions System Scheinecker Manuela Beier Christian
Was ist CVS? Versionsverwaltungssystem 1989, von Brian Berliner Andere Versionsverwaltungssysteme: (SourceSafe, ClearCase, RCS, PVCS,...) eines der führendes Open Source Ver- waltungssysteme kostenfreie Nutzung jeglicher Art
Problemstellung Projektgruppe bearbeitet gemeinsam verschiedene Dokumente Kennzeichnung/Nachverfolgung wer Änderung vorgenommen hat Änderungen rückgängig machen
Basiskonzept Verwaltung und Archivierung von Daten in einem Repository mehrere Benutzer können gleichzeitig an einem Projekt arbeiten auf lokalen Kopien Zusammenführen von Änderungen Versionskontrolle
Repository Repository = cvs.root zentrale Verwaltungsstelle Hauptentwicklungszweig HEAD weitere Entwicklungszweige BRANCH Optimistisches Modell
Aufbau von CVS
Dateiverwaltung CVS verwaltet Dateien, indem Veränderungen vermerkt werden Zeitstempel, Benutzerkennung, Kommentare Datei erhält Revisionsnummer (1.1, 1.2,...) Zugriff auf ältere Ressourcen mittels TAG
Die wichtigsten Befehle UPDATE alle Änderungen werden mit Repository abge- glichen; es werden keine Dateien überschrieben; Darstellung Unterschiede zwischen lokal/remote COMMIT alle Änderungen werden in das Repository gestellt; die Dateien werden dem Team zugänglich gemacht; Dateien erhalten neue Revisionsnummer
Arbeitsfluss in CVS
Versionsverwaltung Momentaufnahme des Projektbaums Symbolischer Bezeichner/TAG für zusammen- hängende Revisionen (abgeschlossene Entwicklungsphase) Version Momentaufnahme des Projektbaums Rückkehr zu bestimmten Versionen möglich
Konflikte Ressource wurde lokal modifiziert, es existiert aber schon eine neuere Überarbeitung in der Verzweigung des Repositories.
Konfliktentstehung
Konflikte bereinigen die Änderung aus der Verzweigung übernehmen, lokale Arbeit wird gelöscht eigene Arbeit mit der Repository-Ressource mischen; evtl. Absprache mit Teamkollegen (empfehlenswert)
Konfliktvermeidung bevor lokal Änderung vorgenommen werden UPDATE nachdem Änderungen abgeschlossen COMMIT Verantwortungsbereich im Team festlegen
CVS in Eclipse Repository anlegen Ein-/Auschecken Synchronisieren, Update, Commit CVS-Ignore Konfliktbehandlung Label Decorations
Vielen Dank für die Aufmerksamkeit!