| Titel: | SVN Subversion | |
| Beschreibung: | Einführung der wichtigsten Befehle wie import, update, delete, add, commit der SVN Subversion Versionskontrolle | |
| Kategorie: | Softwarewissen | |
| Unterkategorie | SVN Subversion Versionskontrolle | |
| Benötigtes Fachwissen: | Anfänger | |
| Artikel überarbeiten: | SVN Subversion | |
SVN ist eine von CollabNet entwickelte Open-Source Versionierungssoftware auf Konsolenbasis, welches die ältere und mit schwächen behaftete CVS Versionierungssoftware ablösen soll.
In SVN sind sämtliche Daten in einem >>Repository<< abgelegt. Das Repository befindet sich in der Regel auf einem zentralen Server von wo aus alle Mitarbeiter zugreifen können. Um Änderungen am Repository vorzunehmen, benötigen Sie eine >>lokale Arbeitskopie<<, welche Sie sich über den Checkout-Befehl >>co<< anlegen können. Um diese lokale Arbeitskopie immer auf dem neuesten Stand zu halten, sollten Sie diese vor jeder Arbeit mit dem >>update-Befehl<< aktualisieren.
Mit dem >>add-Befehl<< und >>delete-Befehl<< kann dem Repository auch nachträglich eine neue Datei hinzugefügt oder gelöscht werden.
Irgendwie müssen die bearbeiteten Daten aus Ihrer lokalen Arbeitskopie auch wieder in das Repository gelangen. Hierfür gibt es den >>commit-Befehl<<
import-Befehl
Mit dem Import-Befehl werden die zu versionierenden Dateien und Ordner in das >>SVN-Repository<< übertragen.
Dieser Befehl wird in der Regel nur zu Beginn benötigt um einmal ein Projekt anzulegen.
Mit der Option >>-m<< geben Sie einen Beschreibugnstext ein.
svn import -m "Beschreibungstext" Version1 "./subversion/repository/projekt/trunk/"
checkout-BefehlMit Checkout >>co<< können Sie Daten mit einem bestimmten Versionsstand aus dem Repository auschecken
svn checkout "./svn/repository/projekt/trunk" Zielverzeichnis
// oder die Kurzform
svn co "./svn/repository/projekt/trunk" Zielverzeichnis
// oder über das Netzwerk
svn co "http://localhost:8080/svn/repository/projekt/trunk" Zielverzeichnis
update-Befehl// oder die Kurzform
svn co "./svn/repository/projekt/trunk" Zielverzeichnis
// oder über das Netzwerk
svn co "http://localhost:8080/svn/repository/projekt/trunk" Zielverzeichnis
Um immer die aktuelle Revision des Repository auf Ihrer >>lokale Arbeitskopie<< zu gewährleisten, sollten Sie vor jeder Arbeit den update-Befehl ausführen.
Der Grund: Sollte ein Arbeitskollege im Repository die Revisionsnummer durch hinzufügen neuer Daten verändert haben, müssen Sie nachträglich die entsprechenden Revisionskonflikte durch manuelles Editieren Ihrer Revision vornehmen. Um diesem Konflikt möglichst zu entgehen, einfach vor jeder Arbeit Ihre lokale Arbeitskopie updaten.
svn update
// Als Ergebnis geupdateter Dateien könnte nach dem Befehl folgende Ausgabe erscheinen:
// U Datei.txt
// Updated to revision 10
add-Befehl// Als Ergebnis geupdateter Dateien könnte nach dem Befehl folgende Ausgabe erscheinen:
// U Datei.txt
// Updated to revision 10
Mit dem add-Befehl kann eine Datei oder ein Ordner in der lokalen Arbeitskopie neu angelegt werden. Nach dem hinzufügen ist die Änderung jedoch nur Ihrer lokalen Arbeitskopie bekannt. Erst nach einem erfolgreichen commit ist die Änderung auch dem Repository bekannt!
// Neue Datei hinzufügen
svn add Dateiname.txt
// Neues verzeichnis Hinzufügen
svn add Verzeichnis
// Datei mit Unterverzeichnis hinzufügen
svn add Verzeichnis/Dateiname.txt
revert-Befehlsvn add Dateiname.txt
// Neues verzeichnis Hinzufügen
svn add Verzeichnis
// Datei mit Unterverzeichnis hinzufügen
svn add Verzeichnis/Dateiname.txt
Hiermit kann eine Datei oder ein Verzeichnis nach dem Hinzufügen mit >>add<< wieder gelöscht werden.
// Hinzugefügte geaddete Datei wieder entfernen
svn revert dateiname
// Parallel kann natürlich auch ein Verzeichnis entfernt werden
svn revert Verzeichnisname
Tagsvn revert dateiname
// Parallel kann natürlich auch ein Verzeichnis entfernt werden
svn revert Verzeichnisname
Ein Tag ist eine Kopie eines Repository zu einem bestimmten Zeitpunkt. In diesem Tag werden alle Änderungen die zu diesem Zeitpunkt gemacht wurden gespeichert
Allgemein:
svn cp Quellverzeichnis Zielverzeichnis
svn cp ./svn/repository/projekt/trunk ./svn/repository/projekt/tags/tagname
delete-Befehlsvn cp Quellverzeichnis Zielverzeichnis
svn cp ./svn/repository/projekt/trunk ./svn/repository/projekt/tags/tagname
Hiermit kann eine Datei oder ein Verzeichnis/Ordner nachträglich aus der lokalen Arbeitskopie gelöscht werden. Nach dem löschen ist die Änderung jedoch nur in der lokalen Arbeitskopie bekannt. Erst nach einem erfolgreichen >>commit<< ist die Änderung auch dem Repository bekannt!
// Datei löschen
svn delete dateiname.txt
// Synchron kann auch ein komplettes Verzeichnis oder Tag gelöscht werden
svn delete verzeichnisname
svn delete tags/tagname
commit-Befehlsvn delete dateiname.txt
// Synchron kann auch ein komplettes Verzeichnis oder Tag gelöscht werden
svn delete verzeichnisname
svn delete tags/tagname
Hiermit wird Ihre lokale Arbeitskopie in das Repository geladen.
Mit der Option >>-m<< geben Sie einen Beschreibugnstext ein.
svn commit -m "Änderungsbeschreibung"
// oder die Kurzform
svn ci -m "Änderungsbeschreibung"
Wichtige SVN-Kommandos// oder die Kurzform
svn ci -m "Änderungsbeschreibung"
Zwei Dateien miteinander vergleichen
svn diff
Abgleich einer Datei in zwei Repositories
svn merge
Beschreibungstexte (bei Angabe von delete und commit) anzeigen
svn log
Statusanzeige einer lokalen Arbeitskopie
svn status
Verzeichniss direkt im Repository anlegen
svn mkdir
Sperren beseitigen und unterbrochene Informationen beenden
svn cleanup
Teile einer lokalen Arbeitskopie/Repository sperren
svn lock
Repositories sichern
svn export