Trac & Subversion (SVN)

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Anleitung wie Trac & SVN zusammen genutzt werden können.
    In diesem Artikel möchte euch zeigen, wie man Trac & SVN in Kombination betreibt. Was Trac ist könnt ihr im dazugehörigen Wiki-Artikel [wiki]Einführung in Trac[/wiki] lesen und auch was SVN ist kann man unter [wiki]Einführung in Subversion[/wiki] erfahren.

    Installation

    Wie immer beziehen sich meine Installationsanweisungen auf Ubuntu (UNIX) und können bei anderen Systemen abweichend sein. Als erstes wollen wir nun Subversion installieren. Ich gehe mal davon aus das Apache schon installiert ist - falls nicht:

    Source Code

    1. sudo apt-get install apache2

    So jetzt SVN:

    Source Code

    1. sudo apt-get install subversion
    2. sudo apt-get install libapache2-svn

    Zum Überprüfen, ob SVN richtig installiert wurde:

    Source Code

    1. svnadmin --version

    Als erfolgreiche Ausgabe erhalten wir so etwas:

    Source Code

    1. svnadmin, Version 1.6.6 (r40053)
    2. übersetzt Dec 12 2009, 05:06:12
    3. Copyright (C) 2000-2009 CollabNet.
    4. Subversion ist Open-Source-Software, siehe http://subversion.tigris.org/
    5. Dieses Produkt enthält Software, die von CollabNet (http://www.Collab.Net/) entwickelt wurde.
    6. Die folgenden Dateisystemmodule für Projektarchive stehen zur Verfügung:
    7. * fs_base : Modul zum Zugriff auf ein Berkeley-DB-Projektarchiv.
    8. * fs_fs : Modul zum Zugriff auf ein dateibasiertes (FSFS) Projektarchiv.
    Display All

    Als nächstes widmen wir uns der Installation von Trac:

    Source Code

    1. sudo apt-get install libapache2-mod-python
    2. sudo apt-get install python-setuptools
    3. sudo apt-get install python-subversion
    4. sudo easy_install Trac

    Auch hier wollen wir überprüfen, ob alles geklappt hat:

    Source Code

    1. trac-admin ?

    Erfolgreiche Ausgabe sollte sein:

    Source Code

    1. Welcome to trac-admin 0.11.7
    2. Interactive Trac administration console.
    3. Copyright (c) 2003-2009 Edgewall Software
    4. Type: '?' or 'help' for help on commands.
    5. Trac [/home/sl/?]>

    SVN konfigurieren

    Als erstes erstellen wir uns die folgende Ordner-Struktur:

    Source Code

    1. sudo mkdir /server
    2. sudo mkdir /server/svn

    Dateirechte setzen:

    Source Code

    1. sudo chown -R www-data /server/svn/
    2. sudo chmod -R 766 /server/svn/

    Als nächstes öffen wir die "dav_svn.conf"-Datei:

    Source Code

    1. sudo gedit /etc/apache2/mods-available/dav_svn.conf

    Hier löschen wir einfach den Inhalt der sich eventuell bereits standardmäßig in der Datei befindet und fügen folgendes ein:

    Source Code

    1. <Location /svn>
    2. DAV svn
    3. SVNParentPath /server/svn
    4. AuthType Basic
    5. AuthName "Subversion Repository"
    6. AuthUserFile /etc/trac_svn_access
    7. Require valid-user
    8. </Location>

    Nun müssen wir unsere "trac_svn_access" Datei erstellen, die nichts weiter ist als eine normale "htpasswd"-Datei:

    Source Code

    1. sudo gedit /etc/trac_svn_access

    Jetzt müssen wir eine Benutzername-Passwort Kombination in die Datei schreiben (erstellen lassen können wir uns so etwas z.B. unter htpasswd-Generator):

    Source Code

    1. Gambler:$apr1$T6rvz...$HVicSnysaUooz2xQ0W6Sa1

    Benutzername und Passwort sind in diesem Fall "Gambler".

    Zum Abschluss erstellen wir uns noch unser erstes Repository:

    Source Code

    1. sudo svnadmin create /server/svn/exampleProject

    Trac konfigurieren

    Wir erweitern unsere Ordner-Struktur:

    Source Code

    1. sudo mkdir /server/trac

    Dateirechte setzen:

    Source Code

    1. sudo chown -R www-data /server/trac/
    2. sudo chmod -R 766 /server/trac/

    Jetzt legen wir unser erstes Trac-Projekt an:

    Source Code

    1. sudo trac-admin /server/trac/exampleProject initenv

    Dann erfolgen einige Abfragen - als erstes vergeben wir unseren Projekt-Namen:

    Source Code

    1. Project Name [My Project]> Our Example Project

    Bei den nächsten zwei Abfragen, drücken wir einfach Enter und nehmen den Standard-Wert:

    Source Code

    1. Database connection string [sqlite:db/trac.db]>
    2. Repository type [svn]>

    Danach müssen wir den absoluten Pfad zu unserem SVN-Repository angeben:

    Source Code

    1. Path to repository [/path/to/repos]> /server/svn/exampleProject

    Anschließend sollten wir folgenden Text erhalten:

    Source Code

    1. The latest documentation can also always be found on the project
    2. website:
    3. http://trac.edgewall.org/
    4. Congratulations!

    Nun müssen wir wieder die "dav_svn.conf"-Datei anpassen:

    Source Code

    1. sudo gedit /etc/apache2/mods-available/dav_svn.conf

    Am Ende der Datei fügen wir folgenden Inhalt ein:

    Source Code

    1. Alias /trac /server/trac
    2. <Location /trac>
    3. SetHandler mod_python
    4. PythonInterpreter main_interpreter
    5. PythonHandler trac.web.modpython_frontend
    6. PythonOption TracEnvParentDir /server/trac
    7. PythonOption TracUriRoot /trac
    8. AuthType Basic
    9. AuthName "Trac"
    10. AuthUserFile /etc/trac_svn_access
    11. Require valid-user
    12. </Location>
    Display All

    Bevor wir es vergessen - Admin-Rechte für einen Trac-User vergeben wir so ("Gambler" - man muss hier den identischen Benutzernamen, wie in der "trac_svn_access"-Datei nutzen):

    Source Code

    1. sudo trac-admin /server/trac/exampleProject permission add Gambler TRAC_ADMIN permission list Gambler

    So und nun wird es Zeit endlich mal unseren Indianer neuzustarten:

    Source Code

    1. sudo /etc/init.d/apache2 restart

    Anwendung

    Die normale (langweilige) SVN-Weboberfläche erreichen wir nun indem wir in unserem Browser die folgende Adresse aufrufen:

    Source Code

    1. http://localhost/svn/exampleProject

    Nun sollten wir, wenn alles geklappt hat eine Passwort-Abfrage erhalten, bei der wir unsere Benutzername-Passwort Kombination eingeben - in meinem Fall bzw. in diesem Beitrag ist beides "Gambler". Aber wozu haben wir SVN mit Trac verknüpft - natürlich um z.B. die "Browse-Source"-Funktion von Trac zu nutzen, die mehr Informationen bietet und viel übersichtlicher ist. Wir können unter "Browse-Source" unser SVN-Repository einsehen und erhalten z.B. die Information, wann eine Datei das letzte mal geändert wurde - was sich geändert hat seit dem letzten Commit etc. - probiert es aus - es wird euch gefallen!

    Die Trac-Weboberfläche rufen so auf:

    Source Code

    1. http://localhost/trac/exampleProject

    Auch hier werden wir wieder nach unserem Benutzernamen und nach unserem Passwort gefragt.

    Beispiel Repository-Tree:

    [Blocked Image: http://image-upload.de/image/8tyeQf/8b2890e0f6.jpg]
    SVN-Diff unter Trac:

    [Blocked Image: http://image-upload.de/image/6uXYqQ/0d199c990e.jpg]
    (das sind nur zwei alte SVN-Test-Repo Screens - hatte keine Lust extra für diesen Artikel neue zu machen xD)

    Man kann nun noch viele weitere indivuelle Einstellungen vornehmen und Funktionen nutzen im Zusammenhang mit Trac & SVN - aber an dieser Stelle soll es das gewesen sein.

    5,664 times viewed