Seit Juli 2012 nutzt FreeBSD ausschließlich Subversion als 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
bevorzugen freebsd-update
(Abschnitt 23.2, „FreeBSD-Update“) um
das FreeBSD Basissystem zu aktualisieren, und
portsnap
(Abschnitt 4.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.
Die Installation von security/ca_root_nss erlaubt es Subversion die Identität des HTTPS-Repository-Servers zu überprüfen. Die SSL Root-Zertifikate können aus der Ports-Sammlung installiert werden:
#
cd /usr/ports/security/ca_root_nss
#
make install clean
Alternativ kann das Paket installiert werden:
#
pkg install ca_root_nss
Mit svnlite
enthält FreeBSD bereits eine
vereinfachte Version von
Subversion. Der Port oder das
Paket ist nur erforderlich, wenn die Python oder Perl
API benötigt wird, oder eine neuere
Version von Subversion gewünscht
ist.
Der einzige Unterschied zum normalen
Subversion ist, dass der Name
des Kommandos svnlite
lautet.
Falls svnlite
nicht verfügbar ist, oder
die komplette Version von
Subversion benötigt wird, muss das
Programm installiert werden.
Subversion kann aus der Ports-Sammlung installiert werden:
#
cd /usr/ports/devel/subversion
#
make install clean
Subversion kann auch als Paket installiert werden:
#
pkg install 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 Zielverzeichnis 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 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 https://svn.FreeBSD.org/
repository
/branch
lcwdir
wobei:
repository
eines der
Projekt-Repositories ist: 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/9
(9.x
) und
stable/10
(10.x
) verwaltet wird.
lcwdir
das Zielverzeichnis
ist, in dem die Inhalte des angegebenen Zweiges platziert
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 ü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
Das FreeBSD Subversion Repository ist:
svn.FreeBSD.org
Dies ist ein öffentlich zugängliches Netzwerk aus Spiegeln, das GeoDNS verwendet, um einen entsprechenden Backend-Server auszuwählen. Um das FreeBSD Subversion Repository über einen Browser anzuzeigen, verwenden Sie http://svnweb.FreeBSD.org/.
HTTPS ist das bevorzugte Protokoll, jedoch muss das Paket security/ca_root_nss installiert werden, um Zertifikate automatisch zu validieren.
Weitere Informationen über die Verwendung von Subversion finden Sie im „Subversion Buch“ mit dem Namen Versionskontrolle mit Subversion, oder in der Subversion Dokumentation.
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>.