Die Versionierung erfolgt in einem zentralen Projektarchiv (engl. Repository) in Form einer einfachen Revisionszählung. Änderungen an Inhalten werden verteilt auf den Computern der Bearbeiter ausgeführt. Zwischen dem Projektarchiv und Arbeitsplatz werden jeweils nur die Unterschiede zu bereits vorhandenen Ständen übertragen d.h. anfangs das gesamte Projekt, später nur Kleinigkeiten. (Quelle: Wikipedia)
Da im Folgenden oft eine SSH-Verbindung zu darwin.fh-regensburg.de aufgebaut wird empfiehlt es sich, eine Authentifizierung mittels Public Keys anstatt von Passworten zu realisieren.
Die dazu nötigen Schritte finden Sie hier.
Im Folgenden wird ein neues Projekt-Verzeichnis mit einer Datei "README" in das Verzeichnis "MB/abc12345" importiert. Das Verzeichnis "leer" kann anschliessend geloescht werden.
% mkdir $HOME/MB % cd MB % mkdir leer % cd leer % echo Vorname Name MatrikelNummer email@example.com >README % svn import -m "$USER-Projekt" . svn+ssh://darwin.fh-regensburg.de/usrdata/bedienst/f/feh39068/MBSVNROOT/MB/abc12345 % cd ..
Das in "MB/abc12345" abgelegte Projekt kann wie folgt zur Bearbeitung aus dem Subversion-Repository ausgecheckt werden:
% cd $HOME/MB % mv abc12345 abc12345.BAK % svn co svn+ssh://darwin.fh-regensburg.de/usrdata/bedienst/f/feh39068/MBSVNROOT/MB/abc12345 % cd abc12345Anschliessend können im Verzeichnis "abc12345" Dateien bearbeitet, neu angelegt und geloescht werden.
Nachdem eine Datei bearbeitet wurde können die Änderungen betrachtet und anschliessend in das Repository zurückgeschrieben werden:
% vi README % svn diff README % svn commit READMEBeim committen wird noch nach einer Zusammenfassung der Änderungen gefragt, die für weitere Entwickler (bzw. fuer Sie in einem halben Jahr) aufschlussreich sein können.
Wenn beim committen keine Datei angegeben wird, dann werden alle geänderten Dateien committet.
Um festzustellen welche Dateien lokal geaendert wurden kann man sich den Status aller Dateien anzeigen lassen:
% svn statusVor dem Committen kann festgestellt werden, welche Änderungen gemacht wurden:
% svn diff READMEFür einzelne Dateien kann auch die Revisionshistorie aufgelistet werden:
% svn log READMEEs kann auch ermittelt werden, welche Änderungen zwischen Revision X und Revision Y gemacht wurden:
% svn diff -rX:Y README
Um eine einzelne neue Datei in einem Verzeichnis, das unter Subversion-Kontrolle ist (z.B. .../abc12345) anzulegen muss die Datei erst existieren, dann muss sie getrennt hinzugefuegt werden, und die ganze Änderung committet werden:
% touch newfile % svn add newfile % svn commit
Das Loeschen von Verzeichnissen und Dateien aus dem Repository muss erst lokal angezeigt und dann committed werden:
% svn rm oldfile % svn commit -m "gone" oldfilebzw.
% svn rm verzeichnis % svn commit -m "wech" verzeichnis
Auch das Umbenennen von Dateien muß extra committet werden:
% svn rename alt neu % svn commit -m "alt -> neu"
Um ein neues Verzeichnis inkl. Dateien anzulegen kann dies entweder mittels "svn import" importiert werden wie oben gezeigt, oder das Verzeichnis und die einzelnen Dateien manuell hinzugefügt werden:
% cd $HOME/MB/abc12345 % mkdir uebungX % svn add uebungX % % cp $HOME/XXX/Makefile uebungX % cp $HOME/XXX/hello.c uebungX % svn add uebungX/Makefile % svn add uebungX/hello.c % % svn commit -m "Uebung Nummer X" uebungX