Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Subversion

  1. #1
    Premium Mitglied Avatar von SeeksTheMoon
    Registriert seit
    Feb 2002
    Beiträge
    1.704

    Subversion

    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

    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
    Code:
    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.
    Geändert von SeeksTheMoon (29.01.04 um 14:46 Uhr)
    09F911029D74E35BD84156C5635688C0

  2. #2
    Premium Mitglied Avatar von SeeksTheMoon
    Registriert seit
    Feb 2002
    Beiträge
    1.704

    Subversion über Webdav und Apache2

    Man sollte dem Apache mitteilen, dass er Webdav und das SVN Modul starten soll.
    Bei gentoo geschieht das in der /etc/conf.d/apache2 Datei:

    APACHE2_OPTS="-D PHP4 -D DAV -D SVN"
    Man kann das auch über die LoadModule-Anweisung in der httpd.conf erreichen

    Mit folgender Anweisung zeigt man dem Apache das Verzeichnis des Repository und gibt auch direkt eine Passwortabfrage dazu:

    PHP-Code:
    <IfDefine SVN>
            <
    IfModule !mod_dav_svn.c>
                    
    LoadModule dav_svn_module       extramodules/mod_dav_
    svn
    .so
            
    </IfModule>
            <
    Location /repositoryn>
                    
    DAV svn
                    SVNPath 
    /subversion/repository
                    AuthType Basic
                    AuthName 
    "Subversion repository"
                    
    AuthUserFile /etc/svn-auth-file
                    
    Require valid-user
            
    </Location>
    </
    IfDefine
    Der Apache muss natürlich auch Rechte am Repository haben; das SVN-Handbuch empfliehlt, für jeden SVN-User und jeden Dienst eine gemeinsame Gruppe anzulegen, damit jeder die nötigen rechte besitzt.
    Man kann nämlich sowohl den svnserver, also auch einen xinetd, als auch den apache gleichzeitig auf das Repository zugreifen lassen, wenn man will.

    Ist das alles eingerichtet, greift man einfach über http auf das Repository zu:

    Man wird gefragt, wie das Passwort für den (lokalen) Benutzer ist. Weil der Benutzer auf der lokalen Maschine oft anders heißt als auf der Remote-Maschine, kann man einfach Enter drücken und wird daraufhin aufgefordert seinen remote-Namen einzugeben (gefolgt vom Passwort natürlich).

    Man kann jetzt auch http://www.host.com/subversion/repository in seinem Browser ansteuern, wo man nach Passwortabfrage einen Blick ins Repository werfen kann (ist aber nicht so vielseitig wie viewcvs).

    Die Webdav-Methode ist z.B. praktisch, wenn man nicht auf den SVN-Port zugreifen kann, darf oder will (aber dafür auf den Standardport des Webservers) und man braucht auch keinen anderen Dienst für SVN zu starten. Wenn man eh schon einen Apache hat, ist das ziemlich angenehm.
    09F911029D74E35BD84156C5635688C0

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •