Apache Subversion: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Zur Navigation springen Zur Suche springen
K
Zeile 1: Zeile 1:
== Subversion Versionsverwaltung ==
+
'''Apache Subversion (SVN)''' ist ein Versionsverwaltungssystem für Dateien und Verzeichnisse. Grundlage des Systems ist ein zentrales Projektarchiv (''Repository''). In diesem Artikel soll neben der Installation von Subversion auf die Installation des einfachen SVN-Servers '''svnserve''' eingegangen werden.
 
+
==Installation==
 
+
Subversion befindet sich im Extra-Repository:
 
+
# pacman -S subversion
Hier eine kurze Einstiegshilfe um ein SVN-Versionskontrollsystem/SVN-Server in Betrieb zu nehmen. Damit ist es möglich verschiedene Versionen eines Projektes vorzuhalten. Somit ist es z.B. möglich auf schon gelöschten, weil vermeintlich nicht mehr benötigten Code zurückzugreifen.
+
==Svnserve==
 
+
===Vorbereitung===
 
+
Für den Betrieb von '''svnserve''' ist es empfehlenswert, für Subversion einen gesonderten Nutzer samt Gruppe anzulegen:
 
+
# groupadd svn
'''Installieren von Subversion:'''
+
 
+
# useradd -c "Subversion" -d /home/svn -g svn -m -s /bin/false svn
  pacman -S subversion
+
===Anlegen der Repositories===
 
+
Im Home-Verzeichnis des Nutzers '''svn''' wird nun ein Stammverzeichnis für alle Repositories angelegt:
 
+
# sudo -u svn mkdir /home/svn/repositories
'''Anlegen eines Verzeichnises für SVN-Repositorys:'''
+
Dort können anschließend die Repositories angelegt werden:
 
+
# sudo -u svn svnadmin create --fs-type fsfs /home/svn/repositories/REPO_NAME
  mkdir /srv/svn
+
Das Repository-Verzeichnis <code>/home/svn/repositories/REPO_NAME</code> wird im Folgenden <code>$REPO_DIR</code> genannt.
 
+
===Nutzerrechte festlegen===
 
+
Die Nutzerrechte können für jede Repository einzeln in der Konfigurationsdatei <code>$REPO_DIR/conf/svnserve.conf</code> festgelegt werden. Als Rechtestufen können <code>read|write|none</code> verwendet werden. Dies geschieht durch das Auskommentieren der Zeile
'''Konfigurieren von svnserve:'''
+
[general]
 
+
auth-access = write
  vim /etc/conf.d/svnserve
+
password-db = passwd
 
+
Dort kann auch allen anonymen Nutzern Schreib- oder Lesezugriff gewährt werden:
 
+
[general]
'''Pfad zum Repo in svnserve anpassen und einen Benutzer festlegen:'''
+
anon-access = read
 
+
Die Nutzer und Passwörter werden in <code>$REPO_DIR/conf/passwd</code> festgelegt:
  SVNSERVE_ARGS="-r /srv/svn"
+
[users]
 
+
harry = foopassword
  SVNSERVE_USER="ExistierenderBenutzer"
+
sally = barpassword
 
+
===Starten des Servers===
Für mehr Optionen "man svnserve" ;)
+
Hierzu muss <code>/etc/conf.d/svnserve</code> entsprechend dem oben festgelegten Stammverzeichnis angepasst werden:
 
+
#
 
+
# Parameters to be passed to svnserve
'''SVN Daemon starten:'''
+
#
 
+
  /etc/rc.d/svnserve start
+
SVNSERVE_ARGS="-r /home/svn/repositories"
 
+
 
+
SVNSERVE_USER="svn"
'''Test Repository anlegen:'''
+
Anschließend den Server starten:
 
+
# /etc/rc.d/svnserve start
  svnadmin create /srv/svn/testsvn
+
Der Server-Daemon kann auch der [[rc.conf]] hinzugefügt werden:
 
+
DAEMONS = (... svnserve)
 
+
===Testen des Repository===
'''User und Passwort für das Repo setzen:'''
+
Ist alles korrekt eingerichtet, sollte folgender Test-Import in das Repository eine Meldung <code>"Revision x übertragen."</code> zurückgeben:
 
+
$ cd /path/to/files
  vim /srv/svn/testsvn/conf/svnserve.conf
+
 
+
$ svn import svn://domain.net/REPO_NAME -m "Import Test"
Und unter [general] einfach diese zwei Zeilen einfügen oder einkommentieren:
+
== Weblinks ==
 
+
* [http://subversion.apache.org/] {{sprache|en}} Offizielle Webseite
  deinUserName = write
 
  password-db = passwd
 
 
 
'''Passwort vom Repo anpassen:'''
 
 
 
  vim /srv/svn/testsvn/conf/passwd
 
 
 
und unter [users] einfügen:
 
 
 
  deinUsername = deinPasswort
 
 
 
 
 
Nun kann z.B. über Netbeans (oder auch der Konsole) das SVN benutzt werden. Man beachte das man hierbei nicht den ganzen Pfad angibt sondern nur das angelegte Repostory. D.h.: svn://hostname/testsvn
 
 
 
 
 
 
[[Kategorie:Netzwerk]]
 
[[Kategorie:Netzwerk]]

Version vom 12. Dezember 2010, 22:02 Uhr

Apache Subversion (SVN) ist ein Versionsverwaltungssystem für Dateien und Verzeichnisse. Grundlage des Systems ist ein zentrales Projektarchiv (Repository). In diesem Artikel soll neben der Installation von Subversion auf die Installation des einfachen SVN-Servers svnserve eingegangen werden.

Installation

Subversion befindet sich im Extra-Repository:

# pacman -S subversion

Svnserve

Vorbereitung

Für den Betrieb von svnserve ist es empfehlenswert, für Subversion einen gesonderten Nutzer samt Gruppe anzulegen:

# groupadd svn

# useradd -c "Subversion" -d /home/svn -g svn -m -s /bin/false svn

Anlegen der Repositories

Im Home-Verzeichnis des Nutzers svn wird nun ein Stammverzeichnis für alle Repositories angelegt:

# sudo -u svn mkdir /home/svn/repositories

Dort können anschließend die Repositories angelegt werden:

# sudo -u svn svnadmin create --fs-type fsfs /home/svn/repositories/REPO_NAME

Das Repository-Verzeichnis /home/svn/repositories/REPO_NAME wird im Folgenden $REPO_DIR genannt.

Nutzerrechte festlegen

Die Nutzerrechte können für jede Repository einzeln in der Konfigurationsdatei $REPO_DIR/conf/svnserve.conf festgelegt werden. Als Rechtestufen können read|write|none verwendet werden. Dies geschieht durch das Auskommentieren der Zeile

[general]
auth-access = write
password-db = passwd

Dort kann auch allen anonymen Nutzern Schreib- oder Lesezugriff gewährt werden:

[general]
anon-access = read

Die Nutzer und Passwörter werden in $REPO_DIR/conf/passwd festgelegt:

[users]
harry = foopassword
sally = barpassword

Starten des Servers

Hierzu muss /etc/conf.d/svnserve entsprechend dem oben festgelegten Stammverzeichnis angepasst werden:

#
# Parameters to be passed to svnserve
#

SVNSERVE_ARGS="-r /home/svn/repositories"

SVNSERVE_USER="svn"

Anschließend den Server starten:

# /etc/rc.d/svnserve start

Der Server-Daemon kann auch der rc.conf hinzugefügt werden:

DAEMONS = (... svnserve)

Testen des Repository

Ist alles korrekt eingerichtet, sollte folgender Test-Import in das Repository eine Meldung "Revision x übertragen." zurückgeben:

$ cd /path/to/files

$ svn import svn://domain.net/REPO_NAME -m "Import Test"

Weblinks

  • [1] Sprache en.png Offizielle Webseite