130 likes | 226 Views
Teamorganisation: Versionsverwaltung. Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme Beispiel Besonderheiten CVS mit eclipse Tools. Wofür Versionskontrolle?. Sperrmechanismen. pessimistische Sperren • explizite Sperre pro Datei
E N D
Teamorganisation: Versionsverwaltung Übersicht • Wofür Versionskontrolle? • Sperrmechanismen • Systeme • Beispiel • Besonderheiten • CVS mit eclipse • Tools
Sperrmechanismen pessimistische Sperren • explizite Sperre pro Datei • keine konkurrierenden Zugriffe keine Konflikte
Sperrmechanismen optimistische Sperren • Sperre nur beim einchecken • update (Synchronisation) jeder Zeit möglich Konflikte (semiautomatische Behebung)
Systeme • RCS – Revision Control System, der Anfang • CVS - Concurrent Versions System, der Klassiker • keine Verzeichnisse • kein Umbenennen / Verschieben • kein Check-In Begriff • aber: gute Tool-Unterstützung • SVN – Subversion, verbessertes CVS • Git – verteilte Versionsverwaltung, Linux Kernel Entwicklung • Mercurial - OpenSolaris, XEN, Kernel-Entwicklung
CVS Beispiel • Alice, Bob arbeiten an einem Projekt • beide checken die Version 1.1 vom Server aus • Alice bearbeitet die Datei Server.java, Client.java (Zeile 42) • Bob bearbeitet Helper.java und Client.java (Zeile 23) • Alice checkt ein • Bob versucht einzuchecken Fehler • Bob führt ein Update durch • neue Server.java • Merge von Client.java, kein Konflikt • Bob checkt ein
CVS Beispiel Teil 2 • Bob ändert in HtmlPanel.java (Zeile 42) • Bob checkt ein • Alice ändert in HtmlPanel.java (Zeile 42) • Alice macht ein Update Konflikt <<<<<<< HtmlPanel.java doc1 = (HTMLDocument) html.getDocument(); ======= doc = html.getDocument(); >>>>>>> 1.4 • Alice behebt den Konflikt • Alice checkt ein
Timestamps / Tags / Branches • CVS speichert (Rückwärts-)Deltas Wiederherstellen alter Versionen möglich • Versionen identifizierbar durch • Timestamps • Revision Numbers • Markierungen (Tags) • Verzweigungen (Branches) sind möglich v 1.1.1.1 v 1.1 v 1.1.2.1 v 1.2 v 1.2.1.1 v 1.1.3.1 v 1.2.2.1