Versionsverwaltung mit SVN Jan-Philipp Kappmeier Technische Universität Berlin 11. 04. 2012
Versionsverwaltung Typische Situation in der Softwareentwicklung Mehrere Personen arbeiten an einem Projekt Arbeiten gleichzeitig Änderungen müssen eventuell rückgängig gemacht werden Einige Features sollen nur Probeweise implementiert werden Es treten Fehler auf, und keiner will es gewesen sein Geeignetes Hilfsmittel: Versionsverwaltung Beispiel Wikipedia Linux-Kernel Google Summer of Code 2 / 29
Versionsverwaltung forts. Beispiel Der aktuelle Stand des Projektes ist in einem Repository (Lager) gespeichert Jeder Nutzer hat eine lokale Kopie zum Arbeiten Wenn der Nutzer mit seinen Änderungen zufrieden ist, kann er sie in das Repository einchecken (commit) Jeder nutzer kann seine lokale Kopie auf den neuesten Stand bringen (update) Zentrale Systeme: CVS (alt) Subversion (SVN) Verteilte Systeme: Mercurial, Git 3 / 29
Funktionsweise von SVN Unabhängige Verwaltung jeder Datei im Projekt Alle eingecheckten Versionen jeder Datei werden archiviert Mehrere Benutzer können (in ihren Kopieen) gleichzeitig am gleichen Projekt (auch Datei) arbeiten Repository zählt Versionsnummern. Wachsen bei jedem Einchecken, Dateien mit höheren Nummern sind aktueller Arbeitszyklus 1 Update auf die aktuellste Version 2 Bearbeiten der Dateien 3 Einchecken der Änderungen ins Repository (Achtung, nur Source-Dateien!) 4 / 29
Versionskonflikte 1 Radikale Lösung: Änderungen eines Benutzers verwerfen 2 Vergleichen und Mischen der Dateien Möglich, wenn zwei Benutzer jeweils eine neue Funktion geschrieben haben SVN enthält ein Merge-Tool das in den meisten Fällen automatisch die Dateiversionen mischt 5 / 29
SVN-Software SVN-Kommandozeile http://subversion.apache.org/ Tortoise Windows-Software mit Einbindung in Explorer http://tortoisesvn.net/ SmartSVN SVN-Client für verschiedene Betriebssysteme http://www.syntevo.com/smartsvn/ 6 / 29
SVN mit Eclipse Um eine erste lokale Kopie zu erhalten, muss ein Projekt ausgecheckt werden In Eclipse wird SVN mit dem Plugin Subclipse unterstützt (alt) http://subclipse.tigris.org/ In Eclipse wird SVN mit dem Plugin Subversive unterstützt (neuer) http://download.eclipse.org/technology/ subversive/0.7/update-site/ Dies ist im Unix-Pool bereits eingerichtet 7 / 29
Ein neues Projekt anlegen 8 / 29
Als Projekttyp SVN auswählen 9 / 29
Repository auswählen (oder Neues eingeben) 10 / 29
Revision auswählen (HEAD = aktuellste) 11 / 29
Ein Projekt anlegen 12 / 29
Das Projekt im Explorer betrachten und freuen 13 / 29
Änderungen einreichen 14 / 29
Hinweistext eingeben und einzureichende Dateien auswählen 15 / 29
Fehler bei Versionskonflikt 16 / 29
SYNCHRONIZE WITH REPOSITORY auswählen, Korrigieren und MARK AS MERGED 17 / 29
Existierendes Projekt ins SVN laden: Rechtsklick auf PA2 18 / 29
Existierendes Projekt ins SVN laden: SVN wählen 19 / 29
Existierendes Projekt ins SVN laden: Repo. wählen 20 / 29
Existierendes Projekt ins SVN laden: Struktur im SVN setzen 21 / 29
Existierendes Projekt ins SVN laden: Kommentar ergänzen 22 / 29
Existierendes Projekt ins SVN laden: nur *.java und Ordner 23 / 29
SVN mit NetBeans Um eine erste lokale Kopie zu erhalten, muss ein Projekt ausgecheckt werden Ein SVN-Plugin ist in NetBeans meistens vorinstalliert sonst: Nachholen über Menü TOOLS PLUGINS Ein SVN-Client muss auf dem Rechner installiert sein 24 / 29
Ein Repository Auschecken 25 / 29
Pfad und Passwort angeben 26 / 29
Lokalen Speicherort auswählen 27 / 29
Ein Repository Auschecken 28 / 29
Projekt erstellen 29 / 29