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 [1] 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 E-Mail [2], 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 [3] 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 [4] ./
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/
[5] 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.
Schnelleinstieg
- SVN-Dienst [6]
- Anleitungen [7]
- SVN-Alternative via AFS [8]
- Konventioneller Webauftritt [9]
nfrage/parameter/de/minhilfe/id/83547/?no_cache=1&a
sk_mail=YruU7AAHs1z82TPviOI4oS%2Bu89wiQ06jfgctsTdQJfk%3
D&ask_name=WEBMASTER
nste/kommunikation_internet/www_seiten/konventioneller_
webauftritt/svn_dienst/parameter/de/minhilfe/
nste/kommunikation_internet/www_seiten/konventioneller_
webauftritt/svn_dienst/anleitungen/parameter/de/minhilf
e/
nste/kommunikation_internet/www_seiten/konventioneller_
webauftritt/svn_dienst/svn_alternative_via_afs/paramete
r/de/minhilfe/
nste/kommunikation_internet/www_seiten/konventioneller_
webauftritt/parameter/de/minhilfe/