direkt zum Inhalt springen

direkt zum Hauptnavigationsmenü

Sie sind hier

TU Berlin

Inhalt des Dokuments

SVN für Einrichtungen

Im Folgenden wird erklärt, wie Sie mit Hilfe eines konventionellen Webauftritts SVN-Repositories zur Verfügung stellen können. Es werden die Verzeichnisstruktur des Webverzeichnisbaumes und die notwendigen Dateien vorgestellt. Desweiteren werden die Möglichkeiten zur Zugriffsbeschränkung aufgezeigt.

Diese Anleitungen gehen davon aus, dass Sie sich mit dem Konzept von Versionsverwaltugssystemen insbesondere Subversion (SVN) bereits auskennen. Einige Aktionen werden beispielhaft erläutert, jedoch soll hier nicht der volle Funktionsumfang von SVN vorgestellt werden. Bei konzeptionellen oder funktionellen Fragen nutzen Sie bitte die zahlreichen Onlinedokumentationen und das umfangreiche Literaturangebot zu dem Thema.

Verzeichnisstruktur / Dateien

In der Bestätigungsemail, die Sie nach der Einrichtung Ihres konventionellen Webauftritts bekommen haben, finden sie den AFS-Basispfad Ihres Webauftritts. In diesem befinden sich, neben anderen, die folgenden Ordner: auth, svn-layout, svn

Im Ordner auth: befinden sich die beiden Dateien svnpasswd sowie svnauthz. Mit diesen Dateien wird der Zugriff auf die Repositories gesteuert.
Im Ordner svn: können Sie Ihre Repositories ablegen.
Im Ordner svn-layout: befinden sich zwei Dateien, die für das Aussehen des Webinterfaces (nur lesender Zugriff auf die aktuellste Version) verantwortlich sind: svnindex.css und svnindex.xsl.

Anlegen eines Repositories

Repositories müssen im Ordner svn/ unterhalb des Basisordners Ihres Webauftritts angelegt werden. Der folgende Befehl legt ein Repository mit dem Namen "projekt1" an:

  • svnadmin create $BASEDIR/svn/projekt1

Alternativ können Sie auch andere graphische Tools verwenden, z.B. Tortoise für Windows. Als nächstes sollten Sie die Zugriffsrechte für Ihr neues Repository überprüfen.

Die Verzeichnisnamen sind "case-sensitive",
d.h. die Groß- und Kleinschreibung muss beachtet werden. Wird das Verzeichnis "Projekt1" angelegt, muss später in der SVN-URI ebenfalls "Projekt1" verwendet werden. Die klein geschriebene Variante "projekt1" würde zu einem Fehler führen.

Hinweis: Das Erstellen der Repositories erfolgt NICHT via http! Sie benötigen hierfür direkten AFS-Zugriff. Unter Linux ist Ihr AFS-Bereich i.d.R. unter /afs/tu-berlin.de/units/Fak_XY/Orgname/ erreichbar. Unter Windows müssen Sie ein Netzlaufwerk verbinden.
Sollten Sie keinen direkten AFS-Zugang haben, können Sie sich via SSH auf sshgate.tu-berlin.de einloggen. Dort sind die notwendigen SVN-Tools installiert und der AFS-Zugang möglich.

AFS-Zugriffsrechte

Daten in Ihrem AFS-Bereich stehen, soweit ein Benutzer die nötigen AFS-Rechte hat, weltweit zur Verfügung. Daher ist es wichtig die AFS-Rechte ihrer Repositories zu prüfen.

Initial werden die folgenden AFS-Rechte vergeben:
Ihre Webgruppe: ([Betreuer-ID]:svc-w3-xxxx): all
(svc-w3-xxxx): l
AFS-Admin-Gruppe: (units:[OrgName]): la
svc-w3: write
system:backup rl

Als Mitglied der Webgruppe haben Sie Vollzugriff und können neue Repositories anlegen.

Hinweis: Für die Verwendung der Repositories via HTTP(S) müssen die Benutzer keine AFS-Rechte besitzen. Besser noch: Sie sollten keine AFS-Rechte besitzen, es sei denn sie administrieren die Repositories. Es ist auch kein provisioniertes Nutzerkonto für die Verwendung via HTTP(S) notwendig.

Warnung: Jeder, der das AFS-Leserecht besitzt, kann die Repositories direkt via AFS auslesen. Die weiter unten beschriebenen Mechanismen zur Zugriffssteuerung via HTTP(S) können dabei NICHT berücksichtigt werden!!! Gewähren Sie also nur Ihren SVN-Administratoren AFS-Zugriffsrechte!

SVN-Zugriffsrechte

Beim Zugriff via HTTP(S) werden die Zugriffsrechte und Benutzer/Passworte  an unterschiedlichen Stellen gesetzt. Dies kann unter Umständen verwirrend sein, bietet aber die Möglichkeit gleichzeitig sowohl anonymen also auch authentisierten Benutzern Rechte zu gewähren.


Zugriffsrechte: $BASEDIR/auth/svnauthz
In dieser Datei können Sie die Zugriffsrechte für alle Repositories angeben. Im Auslieferungszustand sind keine Benutzer eingetragen und der anonyme Zugriff auf alle Repositories gesperrt:

[/]
* =

Mit den eckigen Klammern können Sie angeben, auf welches Repository sich die nachfolgenden Angaben beziehen.
Beispiel:

# bezieht sich auf den Pfad / aller Repositories
[/]
#
bezieht sich nur auf den Pfad "trunk" des Repositories "project1"
[project1:/trunk]

Danach können Sie angeben, welche Benutzer bzw. Gruppen welche Rechte bekommen. Es gibt genau drei Kombinationen von Rechten:

r => Leserecht
rw => Lese- und Schreibrecht
[leer] => keine Rechte


Hinweis: Sind für einen Benutzer keine expliziten Rechte angegeben, so hat er keinerlei Rechte. Es sei denn es wurden Rechte für anonyme Benutzer erteilt.

Beispiele:
# Anonyme Benutzer erhalten das Leserecht
* = r

# Benutzer max bekommt das Schreibrecht
max = rw

# Die Gruppe "fremd" bekommt keine Zugriffsrechte
@fremd =

Gruppen können Sie, genau wie die Zugriffsrechte, auch in der Datei svnauthz definieren:

[groups]
fremd = harry, sally, joe
developers = frank, sally, jane
everyone = harry, sally, joe, frank, sally, jane



Benutzer hinzufügen:

Bei konv. Webauftritten, die nach dem 12.12.2012 angelegt wurden, können Sie direkt provisionierte Benutzer angeben. Sie müssen keine eigenen Benutzer mehr anlegen. Für TUB-Externe Personen besteht diese Möglichkeit aber nach wie vor.

Sollten Sie Ihren konv. Webauftritt vor dem 12.12.2012 beantragt haben, ist die Verwendung provisionierter Benutzer noch nicht eingebaut. Wenn Sie die Funktionalität gerne nutzen möchten, schreiben Sie uns einfach eine , in der Sie uns Ihren konv. Webauftritt nennen.

Achtung: Die selbst angelegten Benutzer haben Vorrang! Existiert ein mueller in der htpasswd und ein gleichnamiger provisionierter  Benutzer, kann sich nur der  mueller mit dem Passwort aus der htpasswd anmelden. Eine Anmeldung mit dem Passwort des prov.  Benutzers ist nicht moeglich. Um Namenskonflikte zu vermeiden,  könnten Sie Ihren eigenen Benutzern ein Suffix voranstellen, z.B. ORGNAME_.

 

Eigene Benutzer: $BASEDIR/auth/svnpasswd

Hier können Sie eigene Benutzer hinzufügen und so auch TUB-Externen Zugriff einräumen.

Bei Webauftritten nach dem 12.12.2012 wird AuthType Basic verwendet. Neue Benutzer müssen mit dem Tool htpasswd generiert werden:
# htpasswd $BASEDIR /auth/svnpasswd  [Benutzername]

Bei Webauftritte vor dem 12.12.2012 wird AuthType Digest verwendet. Neue Benutzer müssen mit dem Tool htdigest generiert werden:
# htdigest $BASEDIR/auth/svnpasswd subversion [Benutzername]


Anschließend erfolgt das Zuweisen eines Passwortes für den angegebenen Benutzernamen.


Wie Sie htdigest unter Windows verwenden können, ist hier beschrieben.

Sollten Sie keinen direkten AFS-Zugang haben, können Sie sich via SSH auf sshgate.tu-berlin.de einloggen. Dort sind die notwendigen SVN-Tools installiert und der AFS-Zugang möglich.

SVN-Zugriffsrechte - Beispielkonfiguration:

Sie wollen den anonymen Zugriff auf alle Repositories verhindern. Benutzer der Gruppe "developer" sollen auf alle Repositories Vollzugriff haben und Mitglieder der Gruppe "user" sollen lesenden Zugriff auf das Repository "documentation" haben.

In der Datei $BASEDIR/auth/svnauthz muss folgendes stehen:
[groups]
developer = max, erika, paul
user = franka, birgit, hans

[/]
* =
@developer = rw

[documentation:/]
@user = r

Benutzer in die Datei $BASEDIR/auth/svnpasswd hinzufügen:
# htdigest  $BASEDIR/auth/svnpasswd subversion max
...
# htdigest  $BASEDIR/auth/svnpasswd subversion erika
...
# htdigest  $BASEDIR/auth/svnpasswd subversion paul
...
usw.

HTTP oder HTTPS ?

Der Zugriff auf ihre Repositories ist unverschlüsselt über HTTP und verschlüsselt über HTTPS möglich. Wir empfehlen Ihnen den verschlüsselten Zugriff via HTTPS zu nutzen.

Für konv. Webauftritte, die nach dem 12.12.2012 eingerichtet wurden, wird bei Verwendung von HTTP nun automatisch auf HTTPS umgeleitet. Sollten Sie bei diesen Repositories versuchen ein Checkout über HTTP zu machen, wird Ihnen das Programm vermutlich eine Fehlermeldung der Art "Das Projektarchiv wurde permanent nach [...] verschoben" melden. Verwenden Sie einfach die gleiche URL mit https:// anstatt http:// .

Checkout / Arbeitskopie anlegen

Für das Checkout eines Repositories müssen Sie angeben, wie darauf zugegriffen werden soll. Nehmen wir an, Ihre Webadresse lautet www.orgname.tu-berlin.de, dann erreichen Sie Ihr Repository wie folgt:

www.orgname.tu-berlin.de/svn/[Name des Repositories]

Unter Linux könnte ein Checkout des Repositories "projekt1" im aktuellen Verzeichnis so aussehen:

svn checkout www.orgname.tu-berlin.de/svn/projekt1 ./

Auch hier können Sie wieder auf diverse graphische Tools zurückgreifen. Tragen Sie einfach Ihre Webadresse gefolgt von svn/[Name des repositories]/ in das entsprechende Feld ein.

!!!Achtung!!!
Die Namen der Repositories sind "case-sensitive", d.h. die Groß- und Kleinschreibung muss beachtet werden.

Webzugriff (lesender Zugriff)

Sie können die jeweils aktuellste Revision (Head Revision) auch mit einem beliebigen Webbrowser aufrufen. Geben Sie einfach die URL Ihres Webauftritts gefolgt von /svn/[Name des Repositories]/ in die Adresszeile Ihres Browsers ein. Sollte der anonyme Zugriff nicht erlaubt sein, werden Sie nach einem Benutzernamen und Passwort gefragt.

Umlaute und Sonderzeichen in Ordner- und Dateinamen

Wir empfehlen Ihnen keine Umlaute oder Sonderzeichen (äöü,?,% ...) in den Ordner- und Dateinamen innerhalb ihres Repositories zu verwenden. Besonders wenn von verschiedenen Betriebssystemen mit unterschiedlichen Sprach- und Encodingeinstellungen und unterschiedlichen SVN-Programmen auf das Repository zugegriffen wird, kann es zu Problemen kommen.

Hooks

Hooks - Skripte, die vor oder nach einer Aktion auf dem Repository serverseitig ausgeführt werden - sind nicht erlaubt. Im entsprechenden Ordner eventuell vorhandene Skripte werden bei Verwendung des Webdienstes nicht ausgeführt. Eine Ausnahme für Einzelfälle kann nicht gemacht werden.

Literatur

Ein gutes Nachschlagewerk für fast alle Fragen ist das offizielle "SVN-Buch". Es ist online unter http://svnbook.red-bean.com/ verfügbar. Neben dieser englischen Version gibt es auch eine deutsche Übersetzung, die jedoch nicht vollständig ist. Den Link finden Sie ganz unten auf der englischsprachigen Seite.

Printmedien lassen sich bei den gängigen Literaturversendern unter dem Stichwort "Subversion" finden.

Zusatzinformationen / Extras

Direktzugang

Schnellnavigation zur Seite über Nummerneingabe