Subversion ist ein Open-Source-Versionsverfolgungssystem. Es speichert Dateien in einem zentralen Repository und bietet Versionskontrolle über Verzeichnisse oder Dateien. Als Entwickler können Sie Projektdateien aus einem Repository abrufen, Änderungen daran vornehmen und sie wieder zurückschieben.

Subversion hat auch eine Serverkomponente, die Sie verwenden können, um Ihre Projekte zu hosten. Es funktioniert ähnlich wie ein gewöhnlicher Dateiserver.

So installieren Sie Subversion

Subversion ist einfach zu installieren. Sie können den entsprechenden Befehl für Ihre Distribution verwenden, um zu beginnen:

# Debian, Ubuntu
sudo apt Installieren Unterversion apache2 libapache2-Mod-svn

# CentOS, Fedora, RHEL
sudo dnf Installieren Unterversion apache2 mod_dav_svn

Beachten Sie, dass dieser Befehl auch installiert den Apache2-Webserver. Sie benötigen einen Webserver, wenn Sie über HTTP oder WebDAV auf das Subversion-Repository zugreifen möchten. Sie können auch HTTPS verwenden, dazu müssen Sie lediglich ein digitales Zertifikat installieren und konfigurieren.

Nachdem Sie diesen Befehl ausgeführt haben, können Sie überprüfen, ob die Subversion korrekt installiert wurde. Sie sollten jetzt in der Lage sein, die auszuführen svn Befehl und Sie können die aktuelle Version mit dem sehen --Ausführung Möglichkeit:

Serverkonfiguration mit Subversion

Wenn die Installation reibungslos verlaufen ist, können Sie jetzt mit der Arbeit an der Repository-Konfiguration beginnen, die Sie verwenden werden svn. Natürlich müssen Sie dafür ein neues Repository erstellen. Erstellen Sie zunächst einen Ordner in einem Stammverzeichnis, um Ihr Repository zu platzieren:

sudo mkdir /subversion

Wenn Sie mit WebDAV über HTTP auf Ihr Repository zugreifen müssen, müssen Sie Apache den Besitz seines Verzeichnisses erteilen. Da verwendet Apache www-Daten Benutzer standardmäßig verwenden, autorisieren Sie diesen Benutzer wie folgt:

sudo chown www-data: www-data /subversion

Sie können jetzt auf die wechseln www-Daten user und beginnen Sie mit der Arbeit an Ihrem Repository. Der Befehl, mit dem Sie sich als www-Daten Benutzer ist:

sudo su -s /bin/bash www-Daten

Sie sind jetzt ein Apache-Benutzer und können nach diesem Schritt Ihr Subversion-Repository wie folgt erstellen:

svnadmin schaffen /subversion/myrepo

Sie haben jetzt ein Subversion-Repository. Um dieses Repository etwas sicherer zu machen und seine Benutzer zu identifizieren, besteht der nächste Schritt darin, einen Benutzer zu erstellen und ein Passwort dafür festzulegen. Verwenden Sie dazu den folgenden Befehl:

htpasswd -cmb /subversion/passwd myadmin mypass

Gemäß diesem Befehl lautet Ihr Benutzername meinadmin und Ihr Passwort wird sein mypass. Sie können diese Werte entsprechend Ihren Umständen ändern.

Ihr Subversion-Repository ist jetzt einsatzbereit. In diesem Stadium können Sie das verlassen www-Daten Benutzer mit der Ausfahrt Befehl.

Jetzt können Sie mit dem folgenden Befehl ein gewünschtes Projekt oder eine gewünschte Datei an Ihr Repo senden:

sudo svn import <Ihre-Projekt-Adresse> file:///subversion/myrepo -m "Erste Verpflichtung"

Dieser Befehl verwendet die importieren -Parameter, um alles in Ihrem Projektordner in Ihr Subversion-Repository zu verschieben. Dabei müssen Sie die Commit-Nachricht mit hinzufügen -m Parameter.

Zugriffsmethoden in Subversion verwenden

Sie haben vielleicht bemerkt, dass Sie die verwenden Datei:// Protokoll, um ein Projekt zu Ihrem Repository hinzuzufügen. Dies ist nur eines von mehreren Netzwerkprotokollen, die Sie verwenden können, um auf ein SVN-Repository zuzugreifen. Sie können auch das WebDAV-Protokoll über HTTP oder HTTPS oder das Custom von Subversion verwenden svn Protokoll.

Direkter Zugriff auf das Repository

Wie Sie gesehen haben, können Sie die verwenden Datei:// Protokoll für den Zugriff auf ein lokales Repository. So können Sie ein lokales Repo in Ihr aktuelles Verzeichnis auschecken:

svn co-Datei:///subversion/myrepo

Wenn Sie das Repo auschecken, zeigt svn eine Liste der darin enthaltenen Dateien an:

Zugriff über WebDAV

Um Ihr Subversion-Repository mit Apache zu integrieren, müssen Sie einige Einstellungen konfigurieren.

Aktivieren Sie im ersten Schritt die dav, dav_svn, und dav_fs Module mit den folgenden Befehlen:

sudo a2enmod dav dav_fs dav_svn

Nachdem Sie die gewünschten Module aktiviert haben, können Sie nun die bearbeiten /etc/apache2/mods-enabled/dav_svn.conf Datei. Erstellen Sie die Datei, falls sie noch nicht existiert, und ändern Sie ihren Inhalt wie folgt:

<Ort / Subversion>
DAV-svn
SVNPath /subversion/myrepo
AuthType Basic
AuthName "Subversion-Repository"
AuthUserFile /subversion/passwd
Benötigen gültiger Benutzer
</Location>

Das AuthUserFile Die Einstellung verweist auf die Datei, die Sie zuvor mit erstellt haben htpasswd. Wenn Sie es hier hinzufügen, wird allen in der Datei genannten Benutzern Zugriff auf das Repository gewährt, vorausgesetzt, sie authentifizieren sich mit einem gültigen Kennwort.

Nachdem Sie diese Datei erstellt und gespeichert haben, starten Sie den Apache2-Dienst mit dem folgenden Befehl neu:

sudosystemctlneu startenapache2.Service

Wenn Sie jetzt einen Webbrowser öffnen und zu gehen http://localhost/subversion/, sehen Sie den Inhalt Ihres Repositorys. Wenn Sie zu dieser Adresse gehen, werden Sie nach Ihrem Benutzernamen und Passwort gefragt:

Melden Sie sich mit dem Benutzernamen an (z. meinadmin) und Passwort (mypass), die Sie zuvor eingerichtet haben. Sie können mit WebDAV auf Ihr Subversion-Repository zugreifen, nachdem Sie den Benutzernamen und das Passwort eingegeben haben:

Zugriff mit SSL und WebDAV

Das https:// Protokoll hat fast die gleiche Konfiguration wie das http:// Protokoll, mit nur wenigen wichtigen Unterschieden. Um ein Beispiel zu nennen, die .conf Datei, die Sie während der Konfiguration verwenden müssen, unterscheidet sich. Außerdem müssen Sie ein digitales Zertifikat installieren. Denn wie Sie wissen, ist dies die Arbeitslogik der SSL-Verschlüsselungsverfahren.

Du kannst Erstellen Sie ein digitales Zertifikat selbst, oder Sie können einen von einer zuständigen Behörde ausgestellten installieren. Angenommen, Sie haben ein digitales Zertifikat installiert, ist das, was Sie tun müssen, einfach.

Der Unterschied in diesem Schritt sind die Änderungen, die Sie in der Konfigurationsdatei vornehmen. Nachfolgend finden Sie eine Beispielkonfigurationsdatei für die SSL- und WebDAV-Nutzung:

<Ort / Subversion>
DAV ein
SSLRequireSSL
Optionen Keiner
AuthType Basic
AuthName "Subversion-Repository"
AuthUserFile /subversion/passwd
Benötigen gültiger Benutzer
</Location>

Wie Sie sehen können, ist der Unterschied zw https:// und http:// Protokolle ist nicht so sehr in Bezug auf Änderungen in der Konfigurationsdatei. Nach diesen Änderungen müssen Sie die neu starten apache2 Service. Laufen systemctl startet apache2.service neu dazu.

Warum Subversion verwenden?

Als Versionstracker merkt sich Subversion jede Änderung, die an Dateien und Verzeichnissen vorgenommen wird. Sie können damit auf alte Versionen von Software oder Dokumenten zugreifen, mit denen Sie arbeiten, und ihre Unterschiede finden. Dies erleichtert die Verwaltung von Projekten, insbesondere wenn Ihr Entwicklungsteam groß oder verteilt ist.

Abgesehen von Subversion gibt es viele Versionskontrollsysteme für Linux, die Sie vielleicht in Betracht ziehen sollten.