You are not logged in.

  • Login

Friday, December 17th 2010, 11:03pm

Tags

Subversion, SVN, Trac

Abstract

Anleitung wie Trac & SVN zusammen genutzt werden können.

Article

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.

1. 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:

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/?]>

2. SVN konfigurieren


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

3. Trac konfigurieren


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

4. 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:


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.

Lexikon 4.1.5, developed by www.viecode.com