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
Einführung in Trac lesen und auch was SVN ist kann man unter
Einführung in Subversion erfahren.
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:
|
Bash
|
1
|
sudo apt-get install apache2
|
So jetzt SVN:
|
Bash
|
1
2
|
sudo apt-get install subversion
sudo apt-get install libapache2-svn
|
Zum Überprüfen, ob SVN richtig installiert wurde:
|
Bash
|
1
|
svnadmin --version
|
Als erfolgreiche Ausgabe erhalten wir so etwas:
|
Bash
|
1
2
3
4
5
6
7
8
9
10
11
|
svnadmin, Version 1.6.6 (r40053)
übersetzt Dec 12 2009, 05:06:12
Copyright (C) 2000-2009 CollabNet.
Subversion ist Open-Source-Software, siehe http://subversion.tigris.org/
Dieses Produkt enthält Software, die von CollabNet (http://www.Collab.Net/) entwickelt wurde.
Die folgenden Dateisystemmodule für Projektarchive stehen zur Verfügung:
* fs_base : Modul zum Zugriff auf ein Berkeley-DB-Projektarchiv.
* fs_fs : Modul zum Zugriff auf ein dateibasiertes (FSFS) Projektarchiv.
|
Als nächstes widmen wir uns der Installation von Trac:
|
Bash
|
1
2
3
4
|
sudo apt-get install libapache2-mod-python
sudo apt-get install python-setuptools
sudo apt-get install python-subversion
sudo easy_install Trac
|
Auch hier wollen wir überprüfen, ob alles geklappt hat:
|
Bash
|
1
|
trac-admin ?
|
Erfolgreiche Ausgabe sollte sein:
|
Bash
|
1
2
3
4
5
6
7
|
Welcome to trac-admin 0.11.7
Interactive Trac administration console.
Copyright (c) 2003-2009 Edgewall Software
Type: '?' or 'help' for help on commands.
Trac [/home/sl/?]>
|
Als erstes erstellen wir uns die folgende Ordner-Struktur:
|
Bash
|
1
2
|
sudo mkdir /server
sudo mkdir /server/svn
|
Dateirechte setzen:
|
Bash
|
1
2
|
sudo chown -R www-data /server/svn/
sudo chmod -R 766 /server/svn/
|
Als nächstes öffen wir die "dav_svn.conf"-Datei:
|
Bash
|
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
2
3
4
5
6
7
8
9
|
<Location /svn>
DAV svn
SVNParentPath /server/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/trac_svn_access
Require valid-user
</Location>
|
Nun müssen wir unsere "trac_svn_access" Datei erstellen, die nichts weiter ist als eine normale "htpasswd"-Datei:
|
Bash
|
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:
|
Bash
|
1
|
sudo svnadmin create /server/svn/exampleProject
|
Wir erweitern unsere Ordner-Struktur:
|
Bash
|
1
|
sudo mkdir /server/trac
|
Dateirechte setzen:
|
Bash
|
1
2
|
sudo chown -R www-data /server/trac/
sudo chmod -R 766 /server/trac/
|
Jetzt legen wir unser erstes Trac-Projekt an:
|
Bash
|
1
|
sudo trac-admin /server/trac/exampleProject initenv
|
Dann erfolgen einige Abfragen - als erstes vergeben wir unseren Projekt-Namen:
|
Bash
|
1
|
Project Name [My Project]> Our Example Project
|
Bei den nächsten zwei Abfragen, drücken wir einfach Enter und nehmen den Standard-Wert:
|
Bash
|
1
2
|
Database connection string [sqlite:db/trac.db]>
Repository type [svn]>
|
Danach müssen wir den absoluten Pfad zu unserem SVN-Repository angeben:
|
Bash
|
1
|
Path to repository [/path/to/repos]> /server/svn/exampleProject
|
Anschließend sollten wir folgenden Text erhalten:
|
Bash
|
1
2
3
4
5
6
|
The latest documentation can also always be found on the project
website:
http://trac.edgewall.org/
Congratulations!
|
Nun müssen wir wieder die "dav_svn.conf"-Datei anpassen:
|
Bash
|
1
|
sudo gedit /etc/apache2/mods-available/dav_svn.conf
|
Am Ende der Datei fügen wir folgenden Inhalt ein:
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Alias /trac /server/trac
<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /server/trac
PythonOption TracUriRoot /trac
AuthType Basic
AuthName "Trac"
AuthUserFile /etc/trac_svn_access
Require valid-user
</Location>
|
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):
|
Bash
|
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:
|
Bash
|
1
|
sudo /etc/init.d/apache2 restart
|
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:

SVN-Diff unter Trac:

(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.