A.3. Benutzen von Subversion

A.3.1. Einführung

Seit Juli 2012 nutzt FreeBSD ausschließlich Subversion als Versionskontrollsystem zur Speicherung des gesamten FreeBSD Quellcodes, der Dokumentation und der Ports-Sammlung.

Anmerkung:

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.

A.3.2. SSL Root-Zertifikate

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

A.3.3. Svnlite

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.

A.3.4. Installation

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

A.3.5. Subversion benutzen

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.

Warnung:

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

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>.