fragen stichworte

Subversion auf Ubuntu mit mehreren Repositorys und separaten Commits

Beim ersten Einrichten von SVN auf meinem Server habe ich mich für die Zugriffsmethode WebDAV http://... entschieden. Ich konnte jedoch nicht herausfinden, wie Sie mit dieser Konfiguration mehrere Repositorys aktivieren. Bei dieser Methode erhöhte ein Commit den Revisionszähler für alle Projekte.

Als nächstes habe ich das svn:// -Protokoll mit dem mitgelieferten svnserve-Daemon umgestellt. Mit den svnserve -d -r/storage/svn/ -Optionen konnte ich mehrere separate Repositorys bereitstellen. Mein Partner und ich waren jedoch nicht sehr erfreut darüber, dass unsere Passwörter in Klartextdateien gespeichert werden mussten.

Was ich brauche, ist eine Möglichkeit, mehrere Repositorys zur Verfügung zu stellen, von denen viele die gleichen Zugriffsberechtigungen haben. Wäre jemand so nett, mich in die richtige Richtung zu weisen?

antworten

Angenommen, Sie haben eine Struktur wie:

  • /var/repositories/repo1
  • /var/repositories/repo2
  • /var/repositories/repo3

Sie brauchen etwas wie:

       <Location/svn>
                DAV svn
                SVNParentPath/var/repositories
                AuthType Basic
                Allow from all
                AuthzLDAPAuthoritative off
                AuthName "SVN Auth"
                AuthzSVNAccessFile/var/security/svnauthz.conf
                AuthUserFile/var/security/passwd.conf
                Require valid-user
        </Location>

Zur Vereinfachung der Verwaltung empfehle ich die Verwendung von SVNManager. Auf diese Weise können Sie Repositorys erstellen, Berechtigungen und Gruppen verwalten.

Für eine einfachere Sichtbarkeit und Navigation des Repositorys mit http empfehle ich die Verwendung von websvn Dies hilft Ihnen, durch das Repository zu navigieren, Änderungen vorzunehmen und Code zu lesen.

Ich denke, es gibt zwei Möglichkeiten, um das Speichern von Klartext-Passwörtern in der svnserve-Konfig zu vermeiden. Beide Optionen funktionieren gut in mehreren Repositorys und bauen auf Ihrem Svnserve-Setup auf. Beide Optionen sind schneller als der Zugriff auf WebDAV, zumindest in SVN 1.6 und früheren Versionen.

  1. Authentifizierung mit SASL
  2. Tunneln über SSH

Ich habe die Optionen mit der offiziellen SVN-Dokumentation verknüpft, da sie in dieser Antwort etwas zu erklären sind.

SASL ist relativ einfach einzurichten und bietet den Vorteil steckbarer Plugins für die Authentifizierung, von einer Basisdatei mit MD5-Hashes bis hin zur Kerberos- oder Active Directory-Integration. Sehr mächtig Diese Option erfordert keine lokalen Systemkonten.

SSH ist etwas schwieriger einzurichten, aber viele Softwareentwickler sind bereits mit der SSH-Authentifizierung vertraut und verfügen bereits über ein SSH-Schlüsselpaar, das sie zur Authentifizierung bei ihren Servern verwenden. Diese Option erfordert lokale Systemkonten für die Zusender, jedoch keinen svnserve-Daemon. Ihr Client stellt eine Verbindung über das Protokoll svn + ssh://her. und startet einen eigenen svnserve-Prozess auf dem Server. Die Verschlüsselung und Authentifizierung erfolgt durch den ssh-Client anstelle des SVN-Clients. Sie sollten daher ein ssh-Kennwortcaching-Tool wie pageant (unter Windows) verwenden, um die wiederholte Eingabe Ihres Kennworts zu vermeiden. Die SSH-Option ist bei verteilten Versionskontrollsystemen wie Git und Mercurial recht beliebt.

In den offiziellen SVNBook-Dokumenten finden Sie eine genauere Beschreibung und Einrichtung.