Seit Juli 2012 nutzt FreeBSD Subversion als primäres Versionskontrollsystem zur Speicherung des gesamten FreeBSD Quellcodes, der Dokumentation und der Ports-Sammlung.
Subversion ist hauptsächlich
ein Werkzeug für Entwickler. Die meisten Benutzer sollten
freebsd-update
(Abschnitt 24.2, „FreeBSD-Update“) benutzen um
das FreeBSD Basissystem zu aktualisieren, und
portsnap
(Abschnitt 5.5, „Benutzen der Ports-Sammlung“)
um die FreeBSD Ports-Sammlung aktuell zu halten.
Dieser Abschnitt zeigt, wie Subversion unter FreeBSD installiert wird und wie Sie damit eine lokale Kopie des FreeBSD Repositories erstellen. Weitere Informationen über die Benutzung von Subversion sind ebenfalls enthalten.
Subversion muss installiert werden, bevor Sie damit die Inhalte eines der Repositories auschecken können. Wenn eine Kopie der Ports-Sammlung bereits vorhanden ist, kann Subversion wie folgt installiert werden:
#
cd /usr/ports/devel/subversion
#
make install clean
Ist die Ports-Sammlung nicht vorhanden, kann Subversion als Paket installiert werden:
#
pkg install devel/subversion
Der svn
Befehl wird verwendet, um eine
Kopie der Quellen in ein lokales Verzeichnis zu holen. Die
Dateien in diesem Verzeichnis werden
lokale Arbeitskopie genannt.
Verschieben oder löschen Sie das lokale
Verzeichnis bevor Sie checkout
benutzen.
In ein bestehendes nicht-svn
Verzeichnis auszuchecken kann zu Konflikten zwischen den
vorhandenen Dateien und denen aus
dem Respository führen.
In Subversion werden URLs in
der Form von
protocol://hostname/path
verwendet,
um ein Repository zu kennzeichnen. Die Spiegel können, wie
unten angegeben, verschiedene Protokolle unterstützen. Die
erste Komponente des Pfades ist das FreeBSD Repository auf
welches zugegriffen wird. Es gibt drei verschiedene
Repositories. base
für den Quellcode des
FreeBSD Basissystems, ports
für die
Ports-Sammlung und doc
für die
Dokumentation. Als Beispiel spezifiziert die URL
svn://svn.FreeBSD.org/ports/head/
den Hauptzweig des Port-Repositories auf dem Mirror
svn.FreeBSD.org
,
über das svn
-Protokoll.
Das Auschecken aus einem bestimmten Repository kann wie folgt durchgeführt werden:
#
svn checkout
svn-mirror
/repository
/branch
lcwdir
wobei:
svn-mirror
eine URL für
einen Mirror aus Subversion
Mirror Sites ist.
repository
eines der
Projekt-Repositories ist, z. B. base
,
ports
oder
doc
.
branch
vom verwendeten
Repository abhängt. ports
und
doc
werden meist im
head
Zweig aktualisiert, während
base
die neueste Version von -CURRENT
unter head
und die jeweilige neueste
Version des -STABLE Zweiges unter
stable/8
(für
8.x
),
stable/9
(9.x
) und
stable/10
(10.x
) verwaltet wird.
lcwdir
das Zielverzeichnis
ist, in dem die Inhalte des angegebenen Zweiges plaziert
werden sollen. Dies ist üblicherweise
/usr/ports
für
ports
, /usr/src
für base
, und
/usr/doc
für
doc
.
Dieses Beispiel checkt die Ports-Sammlung aus dem
Repositroy im Westen der USA über das HTTPS
Protokoll aus, und speichert die Arbeitskopie unter
/usr/ports
. Wenn
/usr/ports
bereits vorhanden ist,
aber nicht von svn
erstellt wurde, denken
Sie vor dem Auschecken daran, das Verzeichnis umzubenennen
oder zu löschen.
#
svn checkout
https://svn.FreeBSD.org
/ports/head /usr/ports
Dies kann eine Weile dauern, da beim ersten Auschecken der komplette Zweig vom entfernten Repository heruntergeladen werden muss. Bitte haben Sie Geduld.
Nach dem ersten Auschecken können Sie Ihre lokale Arbeitskopie wie folgt aktualisieren:
#
svn update
lcwdir
Um /usr/ports
aus dem oben erstellten Beispiel zu aktualisieren, benutzen
Sie:
#
svn update /usr/ports
Das Update ist viel schneller als ein Auschecken, da nur die Dateien übertragen werden müssen, die sich auch geändert haben.
Eine alternative Möglichkeit zur Aktualisierung Ihrer
Arbeitskopie nach dem Auschecken ist es, das bestehende
Makefile
in den Verzeichnissen
/usr/ports
,
/usr/src
, und
/usr/doc
zu nutzen. Setzen Sie
dazu SVN_UPDATE
und benutzen Sie das
update
Ziel. Zum Beispiel, um
/usr/src
zu
aktualisieren:
#
cd /usr/src
#
make update SVN_UPDATE=yes
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.