Subversion
Subversion ist eine Versionsverwaltung für Datenobjekte (Dateien, Quellcode, Doumente .....). Man kann damit viele Versionen von Dateien verwalten und auf die Entstehungsgeschichte der Dateien zugreifen. Das Prinzip von Subversion stellt das nachfolgende Sequenzdiagramm dar.
Die Lebenslinie "svnServer" stellt den Subversion-Server dar, meinPC ist der eigene PC, an dem man arbeitet.
- Zuerst checkt man sein eigenes Projekt vom Server aus. Dadurch erhält man eine lokale Kopie des Projekts. Das Kommando lautet
svn co ServerURL/projekt
. - Dann bearbeitet man sein Projekt. Neue Verzeichnisse und Dateien müssen unter Versionsverwaltung gestellt werden. Das geschieht mit dem Kommando
svn add neueDaten
. Will man Daten auf dem Server löschen, markiert man sie mit dem Kommandosvn del meineDaten
lokal als gelöscht. - Vor dem commit aktualisiert man seine lokale Arbeitskopie mit
svn update
. - Ist das Projekt beendet (z. B. die Praktikumsaufge fertig gelöst) überträgt man es auf den Server mit
svn ci -m "Text zur Version"
und erzeugt eine neue Version auf dem Server.
Befehl | Beschreibung | Beispiel |
---|---|---|
checkout | Holt die initialen Projektinformationen aus dem Repository. Dieser Befehl muss nur einmal ausgeführt werden. | svn co http://Adresse svn checkout svn://Adresse |
update | Aktualisiert die lokalen Daten aus dem Repository. | svn update |
add | Fügt neu erstellte Dateien der Versionsverwaltung hinzu. | svn add Ordner/Datei |
delete | Markiert Dateien als gelöscht. Die Änderung wird allerdings erst nach einem Commit wirksam. | svn del Ordner/Datei |
commit | Lädt lokale geänderte Dateien in das Repository hoch. Eine Nachricht sollte stets angegeben werden. | svn ci -m 'Was wurde geändert' |
help | Listet alle Befehle und weitere Hilfestellungen auf. | svn help |
copy | Kopiert Dateien oder Verzeichnisse im Repository | svn copy Quelle Ziel |
move | Verschiebt Dateien oder Verzeichnisse. | svn move Quelle Ziel |
merge | Bei Konflikten wird autoamtisch die Merge Funktionen aufgerufen. Hier kann gewählt werden, welche Version der Quellen in das Repository übernommen wird. Es kann auch eine manuelle Konfliktlösung gewählt werden. | |
propset | Setzt zusätzliche Eigenschaften auf Dateien oder Verzeichnisse. | svn propset svn:keyword "Author" datei.txt |
stat | Listet alle geänderten Dateien auf und zeigt neue nicht im Repository befindliche Dateien an. | svn stat |
info | Gibt Informationen über Pfad und Repository aus. | svn info |
log | Gibt logging-Infos aus. | svn log |
Ausführliche Infos zu SVN findet man unter:
http://svnbook.red-bean.com/de/1.7/
Probleme vermeiden
.svn-Dateien beachten
Die von Subversion verwalteten Elemente werden auf dem Server in einer Datenbank abgelegt. Subversion merkt sich die Dateien, die unter Versionsverwaltung stehen in lokalen Verzeichnissen mit dem Namen ".svn". Beim verschieben oder kopieren von lokalen Elementen kann man durch kopieren der, in der Regel, nicht sichtbaren .svn-Verzeichnisse Inkonsistenen erzeugen, die ein einchecken der Daten erschwert. Daher sollte stets mit svn copy bzw svn move gearbeitet werden.