Subversion Beispiel
Wie funktioniert Subversion?
Beschreibung | |
---|---|
![]() | Das Repository mit dem Namen "SVN Repository" enthält 3 Projekte. Ihr Name ist "Pr 1", "Pr 2" und "Pr 3". Im FBI könnte der Repository-Namen lauten:https://subversion.h-da.de/svn/fbi/se3x/ |
![]() | Zu Beginn eines Projekts checkt man sein eigenes Projekt aus, z. B. mit dem Kommando: svn co https://subversion.h-da.de/svn/fbi/se3x/Pr 1Als Ergebnis erhält man eine lokale Kopie des Verzeichnisses "Pr 1". Dieses Verzeichnis ist leer, da wir noch keine Dateien unter Versionsverwaltung gestellt haben. |
![]() | Jetzt stellen wir 3 Dateien in das lokale Verzeichnis "Pr 1", die Dateien d1.java, d2.java und d3.java. Um diese Dateien unter Versionsverwaltung zu setzen, wechseln wir in das VerzeichnÃs Pr 1 und setzen die Dateien unter Versionsverwaltung mit dem Kommando:svn add *.javaZum Schluss committen wir die lokale Kopie und transferieren sie damit auf den Server. Das Kommando lautet: svn ci -m "drei java-dateien hochgeladen" |
![]() | Nach dem commit enthält das Projekt Pr 1 auf dem SVN-Server die drei Java-Dateien. Die Projekte Pr 2 und Pr 3 sind durch Pünktchen angedeutet. Mit dem Kommando:svn statkann man sich den Zustand der Dateien in der LOKALEN KOPIE des Repository ansehen. |
Wie funktioniert Subversion beim parallelen Zugriff mehrerer Personen?
Greifen mehrere Personen auf ein SVN-Repository zu, so arbeiten ALLE auf einer Kopie der selben Daten. Bei einem commit müssen alle Daten im Repository wieder zu einer Einheit zusammengefügt werden.
Beschreibung | |
---|---|
![]() | Wir nehmen wieder das SVN-Repository von dem Beispiel oben an. Das Repository enthält das Projekt Pr 1.. In diesem Projekt sind die drei Dateien d1.java, d2.java und d2.java. |
![]() | Zwei Entwickler checken das Projekt Pr 1 aus und bearbeiten es parallel. |
![]() | Entwickler 1 bearbeitet die Datei d1.java. |
![]() | Entwickler 2 bearbeitet die Datei d2.java. |
![]() | Überträgt Entw 1 seine Kopie auf den SVN-Server, so stehen seine Änderungen in d1.java im Repository auf dem Server. Damit Entw 2 bei einem commit diese Änderungen nicht überschreibt, muss er seine lokale Kopie zuerst aktualisieren. Dazu nutzt er das Kommando:svn updateDadurch aktualisiert er seine Kopie des Repository auf seinem Rechner und kann jetzt, ohne die Daten von Entw 1 zu beschädigen, seine Änderungen an d2.java auf den Serer übertragen. svn ci -m " Jetzt gibt es keine Konflikte zwischen Entw 1 und Entw 2." |