SeeksTheMoon
28.01.04, 21:15
Dieses Tutorial ist quasi ein SVN-Schnelleinstieg. Mehr kann man im SVN-Handbuch erfahren (s.u.)
Was ist Subversion?
Subversion (oder kurz SVN) ist ein modernes Versionsverwaltungssystem, das beste Voraussetzungen hat, um CVS endlich in den Ruhestand zu schicken.
Was kann SVN?
Im Gegensatz zu CVS kommt es mit Binärdateien klar, kann Verzeichnisse verwalten, hat atomic commits und *vieles* mehr.
Man kann auch ganz easy seinen kompletten CVS-Bestand importieren - mit allen Änderungen, Branches usw.
Alle wichtigen und weniger wichtigen Tools bieten außerdem SVN-Support (z.B. kdevelop3, emacs, viewcvs, uvm.).
Subversion bringt im Februar seine Version 1.0 heraus (ist aber schon lange als stabil anzusehen) und CVS hat mich immer mehr mit Hängern und seinen nicht vorhandenen Features genervt.
Das sind doch gute Gründe um sich SVN näher anzusehen :D
Links
Die offizielle Homepage ist subversion.tigris.org und wenn man schonmal da ist, kann man sich auch gleich http://rapidsvn.tigris.org/ und http://tortoisesvn.tigris.org/ ansehen, wo es ein paar grafische Oberflächen für SVN gibt.
Das offizielle Handbuch gibts auf http://svnbook.red-bean.com/
SVN Installieren
Um SVN zu installieren braucht man natürlich den tarball von SVN, ebenso wie einen tarball von neon (http://www.webdav.org/neon), db-4 (http://www.sleepycat.com) und apr (das ist ein Teil von Apache2, man kann auch direkt den ganzen Apache2 nehmen).
Python 2.x und Swig sind noch ein paar optionale Erweiterungen; wenn man von CVS zu SVN migriert, braucht man Python auf jeden Fall.
Von den genannten Paketen installiert man SVN als letztes. Bei gentoo sollte man auch autoconf 2.59 emerged haben, ob das bei anderen Distries notwendig ist, weiß ich nicht.
Will man SVN mit kdevelop3 benutzen, muss man kdevelop nach SVN installieren und bei configure den entsprechenden Parameter für SVN mitgeben.
Repository anlegen
Nach der installation der Pakete hat man schon alles was man braucht.
Mit
svnadmin create /subversion/repository erzeugt man neues Repository. Das braucht man auch wenn man ein CVS-Repository importiert.
CVS-Repository importieren
Zum Importieren benutzt man das mitgelieferte Python-Script "cvs2svn.py".
Mit
cvs2svn.py -n -v -s /subversion/repository /cvs/repository
kann man sich erstmal "trocken" ansehen, was das Script machen würde ohne tatsächlich etwas zu verändern.
Lässt man -n weg, gehts wirklich los (vorher vielleicht noch nen Blick in die manpage von dem Script werfen). Bei großen Projekten kann das Importieren teilweise ziemlich lange dauern.
Zugriff
Wenn es auf dem Server schon einen SSH-Zugang gibt, dann kann man direkt ohne etwas zu konfigurieren mit
svn KOMMANDO svn+ssh://USER@www.host.com/subversion/repository
auf das repository zugreifen.
Die verfügbaren Kommandos liefert
svn --help, wo u.a. viele bekannte Dinge wie z.B. add, checkout (co), update und commit (ci) auftauchen.
Sollte man bei der SSH-Methode zurückgewiesen werden, weil man angeblich keine Rechte hat, dann muss man sicherstellen, dass die User auf dem Verzeichnis /subversion/repository und den Dateien und Unterverzeichnissen darin Lese- und Schreibrechte haben.
Im Verzeichnis des Repository gibts ein conf-Verzeichnis in dem man weitere Einstellungen vornehmen kann (z.B. andere Anmeldemethode über Passwort-Datei oder Datenbank)
Vorher sollte man natürlich den SVN-Dienst starten. Am einfachsten geht das mit
svnserve -d.
Es besteht auch die Möglichkeit, den Dienst über den (x)inetd oder den Apache2 zu starten.
Genaueres dazu findet sich im SVN-Handbuch (s.o.).
Für diesen Fall sollte man
svnserve 3690/tcp # Subversion protocol
in die /etc/services eintragen.
Das wars auch schon.
Upgraden auf eine neuere SVN-Version
Bevor man ein Upgrade auf eine neue SVN-Version macht, sollte man sich die Status-Page ansehen: http://subversion.tigris.org/project_status.html
Ist die Versionsnummer dort rot markiert, muss man vom SVN-Repository einen dump machen, die neue Version installieren und den dump importieren.
Das dürfte aber nicht mehr passieren, weil die Stable-Version wie gesagt vor der Tür steht (aber selbst wenn: das ist weder schwer noch ein großer Aufwand)
Man sollte in Bezug darauf auch drauf achten, dass der SVN-Server und die SVN-Clients der User möglichst auf dem gleichen Versionsstand sind, aber ab 0.35 (das ist der Beta-Zweig, der bald zu 1.0 wird) dürfte das wie gesagt keine Rolle mehr spielen; höchstens bei älteren Versionen.
Was ist Subversion?
Subversion (oder kurz SVN) ist ein modernes Versionsverwaltungssystem, das beste Voraussetzungen hat, um CVS endlich in den Ruhestand zu schicken.
Was kann SVN?
Im Gegensatz zu CVS kommt es mit Binärdateien klar, kann Verzeichnisse verwalten, hat atomic commits und *vieles* mehr.
Man kann auch ganz easy seinen kompletten CVS-Bestand importieren - mit allen Änderungen, Branches usw.
Alle wichtigen und weniger wichtigen Tools bieten außerdem SVN-Support (z.B. kdevelop3, emacs, viewcvs, uvm.).
Subversion bringt im Februar seine Version 1.0 heraus (ist aber schon lange als stabil anzusehen) und CVS hat mich immer mehr mit Hängern und seinen nicht vorhandenen Features genervt.
Das sind doch gute Gründe um sich SVN näher anzusehen :D
Links
Die offizielle Homepage ist subversion.tigris.org und wenn man schonmal da ist, kann man sich auch gleich http://rapidsvn.tigris.org/ und http://tortoisesvn.tigris.org/ ansehen, wo es ein paar grafische Oberflächen für SVN gibt.
Das offizielle Handbuch gibts auf http://svnbook.red-bean.com/
SVN Installieren
Um SVN zu installieren braucht man natürlich den tarball von SVN, ebenso wie einen tarball von neon (http://www.webdav.org/neon), db-4 (http://www.sleepycat.com) und apr (das ist ein Teil von Apache2, man kann auch direkt den ganzen Apache2 nehmen).
Python 2.x und Swig sind noch ein paar optionale Erweiterungen; wenn man von CVS zu SVN migriert, braucht man Python auf jeden Fall.
Von den genannten Paketen installiert man SVN als letztes. Bei gentoo sollte man auch autoconf 2.59 emerged haben, ob das bei anderen Distries notwendig ist, weiß ich nicht.
Will man SVN mit kdevelop3 benutzen, muss man kdevelop nach SVN installieren und bei configure den entsprechenden Parameter für SVN mitgeben.
Repository anlegen
Nach der installation der Pakete hat man schon alles was man braucht.
Mit
svnadmin create /subversion/repository erzeugt man neues Repository. Das braucht man auch wenn man ein CVS-Repository importiert.
CVS-Repository importieren
Zum Importieren benutzt man das mitgelieferte Python-Script "cvs2svn.py".
Mit
cvs2svn.py -n -v -s /subversion/repository /cvs/repository
kann man sich erstmal "trocken" ansehen, was das Script machen würde ohne tatsächlich etwas zu verändern.
Lässt man -n weg, gehts wirklich los (vorher vielleicht noch nen Blick in die manpage von dem Script werfen). Bei großen Projekten kann das Importieren teilweise ziemlich lange dauern.
Zugriff
Wenn es auf dem Server schon einen SSH-Zugang gibt, dann kann man direkt ohne etwas zu konfigurieren mit
svn KOMMANDO svn+ssh://USER@www.host.com/subversion/repository
auf das repository zugreifen.
Die verfügbaren Kommandos liefert
svn --help, wo u.a. viele bekannte Dinge wie z.B. add, checkout (co), update und commit (ci) auftauchen.
Sollte man bei der SSH-Methode zurückgewiesen werden, weil man angeblich keine Rechte hat, dann muss man sicherstellen, dass die User auf dem Verzeichnis /subversion/repository und den Dateien und Unterverzeichnissen darin Lese- und Schreibrechte haben.
Im Verzeichnis des Repository gibts ein conf-Verzeichnis in dem man weitere Einstellungen vornehmen kann (z.B. andere Anmeldemethode über Passwort-Datei oder Datenbank)
Vorher sollte man natürlich den SVN-Dienst starten. Am einfachsten geht das mit
svnserve -d.
Es besteht auch die Möglichkeit, den Dienst über den (x)inetd oder den Apache2 zu starten.
Genaueres dazu findet sich im SVN-Handbuch (s.o.).
Für diesen Fall sollte man
svnserve 3690/tcp # Subversion protocol
in die /etc/services eintragen.
Das wars auch schon.
Upgraden auf eine neuere SVN-Version
Bevor man ein Upgrade auf eine neue SVN-Version macht, sollte man sich die Status-Page ansehen: http://subversion.tigris.org/project_status.html
Ist die Versionsnummer dort rot markiert, muss man vom SVN-Repository einen dump machen, die neue Version installieren und den dump importieren.
Das dürfte aber nicht mehr passieren, weil die Stable-Version wie gesagt vor der Tür steht (aber selbst wenn: das ist weder schwer noch ein großer Aufwand)
Man sollte in Bezug darauf auch drauf achten, dass der SVN-Server und die SVN-Clients der User möglichst auf dem gleichen Versionsstand sind, aber ab 0.35 (das ist der Beta-Zweig, der bald zu 1.0 wird) dürfte das wie gesagt keine Rolle mehr spielen; höchstens bei älteren Versionen.