Apache Subversion: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
(um Sicherung und Wiederherstellung eines Repositorys ergänzt)
Zeile 1: Zeile 1:
'''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.
'''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==
== Installation ==
Subversion befindet sich im Extra-Repository:
Subversion befindet sich im Extra-Repository:
  # pacman -S subversion
  # pacman -S subversion
==Svnserve==
== Svnserve ==
===Vorbereitung===
=== Vorbereitung ===
Für den Betrieb von '''svnserve''' ist es empfehlenswert, für Subversion einen gesonderten Nutzer samt Gruppe anzulegen:
Für den Betrieb von '''svnserve''' ist es empfehlenswert, für Subversion einen gesonderten Nutzer samt Gruppe anzulegen:
  # groupadd svn
  # groupadd svn
   
   
  # useradd -c "Subversion" -d /home/svn -g svn -m -s /bin/false svn
  # useradd -c "Subversion" -d /home/svn -g svn -m -s /bin/false svn
===Anlegen der Repositories===
=== Anlegen der Repositories ===
Im Home-Verzeichnis des Nutzers '''svn''' wird nun ein Stammverzeichnis für alle Repositories angelegt:
Im Home-Verzeichnis des Nutzers '''svn''' wird nun ein Stammverzeichnis für alle Repositories angelegt:
  # sudo -u svn mkdir /home/svn/repositories
  # sudo -u svn mkdir /home/svn/repos
Dort können anschließend die Repositories angelegt werden:
Dort können anschließend die Repositories angelegt werden:
  # sudo -u svn svnadmin create --fs-type fsfs /home/svn/repositories/REPO_NAME
  # sudo -u svn svnadmin create --fs-type fsfs /home/svn/repos/REPO_NAME
Das Repository-Verzeichnis <code>/home/svn/repositories/REPO_NAME</code> wird im Folgenden <code>$REPO_DIR</code> genannt.
=== Nutzerrechte festlegen ===
===Nutzerrechte festlegen===
Die Nutzerrechte können für jede Repository einzeln in der Konfigurationsdatei <code>/home/svn/repos/REPO_NAME/conf/svnserve.conf</code> festgelegt werden. Als Rechtestufen können <code>read|write|none</code> verwendet werden. Dies geschieht durch das Auskommentieren der Zeile
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
  [general]
  [general]
  auth-access = write
  auth-access = write
Zeile 23: Zeile 22:
  [general]
  [general]
  anon-access = read
  anon-access = read
Die Nutzer und Passwörter werden in <code>$REPO_DIR/conf/passwd</code> festgelegt:
Die Nutzer und Passwörter werden in <code>/home/svn/repos/REPO_NAME/conf/passwd</code> festgelegt:
  [users]
  [users]
  harry = foopassword
  harry = foopassword
  sally = barpassword
  sally = barpassword
===Starten des Servers===
=== Starten des Servers ===
Hierzu muss <code>/etc/conf.d/svnserve</code> entsprechend dem oben festgelegten Stammverzeichnis angepasst werden:
Hierzu muss <code>/etc/conf.d/svnserve</code> entsprechend dem oben festgelegten Stammverzeichnis angepasst werden:
  #
  #
Zeile 33: Zeile 32:
  #
  #
   
   
  SVNSERVE_ARGS="-r /home/svn/repositories"
  SVNSERVE_ARGS="-r /home/svn/repos"
  SVNSERVE_USER="svn"
  SVNSERVE_USER="svn"
Anschließend den Server starten:
Anschließend den Server starten:
  # /etc/rc.d/svnserve start
  # /etc/rc.d/svnserve start
Der Server-Daemon kann auch der [[rc.conf]] hinzugefügt werden:
Der Server-Daemon kann auch der [[rc.conf]] hinzugefügt werden:
  DAEMONS = (... svnserve)
  DAEMONS = (... @svnserve)
===Testen des Repository===
=== Test des Servers ===
Ist alles korrekt eingerichtet, sollte folgender Test-Import in das Repository eine Meldung <code>"Revision x übertragen."</code> zurückgeben:
Ist alles korrekt eingerichtet, sollte folgender Test-Import in das Repository eine Meldung <code>"Revision x übertragen."</code> zurückgeben:
  $ cd /path/to/files
  $ cd /path/to/files
   
   
  $ svn import svn://domain.net/REPO_NAME -m "Import Test"
  $ svn import svn://domain.net/REPO_NAME -m "Import Test"
== Wartung ==
=== Sicherung und Wiederherstellung eines Repositorys ===
Es ist empfehlenswert, in regelmäßigen Abständen ein Backup der Repositories auf einem physikalisch getrennten Medium anzulegen. Mit der folgenden Methode wird jeweils ein Repository gesichert. Sie muss für mehrere Repositories entsprechend wiederholt werden.
Zuerst wird ein Dump angelegt. Dieser sollte sinnvoll benannt werden:
# sudo -u svn svnadmin dump /home/svn/repos/REPO_NAME > /path/to/dumps/REPO_NAME-20110101.dump
Diese Dumps können dann später in ein frisch angelegtes Repository eingespielt werden:
# sudo -u svn svnadmin create --fs-type fsfs /home/svn/repos/REPO_NAME
# sudo -u svn svnadmin load /home/svn/repos/REPO_NAME < REPO_NAME-20110101.dump
Wichtig ist hierbei das anschließende Setzen der Benutzerrechte:
# chmod -R g+w /home/svn/repos/REPO_NAME/db
== Weblinks ==
== Weblinks ==
* [http://subversion.apache.org/ Offizielle Webseite] {{sprache|en}}
* [http://subversion.apache.org/ Offizielle Webseite] {{sprache|en}}


[[Kategorie:Netzwerk]]
[[Kategorie:Netzwerk]]

Version vom 6. Januar 2011, 20:44 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/repos

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

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

Nutzerrechte festlegen

Die Nutzerrechte können für jede Repository einzeln in der Konfigurationsdatei /home/svn/repos/REPO_NAME/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 /home/svn/repos/REPO_NAME/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/repos"
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)

Test des Servers

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"

Wartung

Sicherung und Wiederherstellung eines Repositorys

Es ist empfehlenswert, in regelmäßigen Abständen ein Backup der Repositories auf einem physikalisch getrennten Medium anzulegen. Mit der folgenden Methode wird jeweils ein Repository gesichert. Sie muss für mehrere Repositories entsprechend wiederholt werden.

Zuerst wird ein Dump angelegt. Dieser sollte sinnvoll benannt werden:

# sudo -u svn svnadmin dump /home/svn/repos/REPO_NAME > /path/to/dumps/REPO_NAME-20110101.dump

Diese Dumps können dann später in ein frisch angelegtes Repository eingespielt werden:

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

# sudo -u svn svnadmin load /home/svn/repos/REPO_NAME < REPO_NAME-20110101.dump

Wichtig ist hierbei das anschließende Setzen der Benutzerrechte:

# chmod -R g+w /home/svn/repos/REPO_NAME/db

Weblinks