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 1
Als 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 *.java
 Zum 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 stat
kann 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 update
Dadurch 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."