Howto:Subversion
Subversion (SVN)
Einrichtung
- Installation
Subversion kann einfach per Paket installiert werden:
apt-get install subversion
- Repository einrichten
Nun muss man das Repository anlegen:
mkdir /var/svn mkdir /var/svn/repository svnadmin create /var/svn/repository/example
Dann sind die Rechte für den Zugriff einzurichten (wenn nicht nur auf Dateisystemrechte-Ebene gearbeitet werden soll). Die Konfiguration erfolgt im Repository-Verzeichnis. Die Konfigurationsdatei ist conf/svnserve.conf:
[general]
Die Nutzer werden in conf/authz eingetragen:
[groups] meinegruppe = crissi,mike [/] * = crissi= rw mike = rw ansgar = ro
Dann kann man den ersten Commit machen:
svn import /path/to/projectexample file:///var/svn/repository/example/examplev1 -m"initial import"
- Apache für Repositoryfreigabe einrichten
Es werden die Apache-Module authz und dav_svn benötigt. Diese stellen die Authentisierung bzw WebDAV-Schnittstelle bereit.
apt-get install apache2 libapache2-mod-svn
Nun ist die Datei /etc/apache2/mods-available/dav_svn.conf zu bearbeiten:
<Location /meinrepo> DAV svn SVNPath /var/svn/repository AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd AuthzSVNAccessFile /etc/apache2/dav_svn.authz Require valid-user </Location>
Danach ist die Benutzer-Datei zu verlinken:
ln -s /var/svn/repository/conf/authz /etc/apache2/dav_svn.authz
Nun noch die Nutzer anlegen:
touch /etc/apache2/dav_svn.passwd htpasswd /etc/apache2/dav_svn.passwd ansgar htpasswd /etc/apache2/dav_svn.passwd crissi htpasswd /etc/apache2/dav_svn.passwd mike
Das Repository ist dann unter http://servername/meinrepo/ erreichbar. Es empfiehlt sich, den Block <Location>...</Location> in /etc/apache2/mods-available/dav_svn.conf auszukommentieren und in einem virtuellen Host mit SSL-Unterstützung einzufügen, um die Kommunikation zu verschlüsseln.
Benutzung
- Kommandozeile
- Auschecken:
svn checkout file:///var/svn/repository/example svn checkout http://anyurl.com/path svn checkout svn://anyurl.com/path svn checkout svn+ssh://user@anyurl.com/path
- Arbeitskopie aktualisieren auf neueste Version:
svn up
- Arbeitskopie aktualisieren auf bestimmte Revision:
svn up -r 1234
- Log anschauen
- Log anschauen
svn log
- Log für bestimmte Revsion:
svn log -r 1234
- Vergleich
svn diff datei.txt -r 1234:5678 svn diff datei.txt -r 1234:HEAD
- Graphische Oberflächen
- kdesvn - KDE-Client
- TortoiseSVN - Windows-Client
- KDevelop - graphische Entwicklungsumgebung
- Eclipse - graphische Entwicklungsumgebung