SVN Subversion Mini Cheat Sheet
auf dem SVN-Host ein neues Repository anlegen:
cd /var/www/svn.meinserver.de/svn svnadmin create meinProjekt
erster Import in das neue Repository:
svn import localDirectory https://svn.meinserver.de/svn/meinProjekt -m "First Import"
Jetzt muss das neue Projekt gleich ausgecheckt werden, damit auch das lokale Verzeichnis in die Versionsverwaltung kommt:
# erstmal das vorhandene Verzeichnis umbenennen: mv meinProjekt meinProjekt.old svn co https://svn.meinserver.de/svn/meinProjekt meinProjekt
ausgechecktes Repostory updaten:
svn up
Änderungen einchecken:
svn ci
lokale Änderungen rückgängig machen:
svn revert <filename>
Executable Property setzen:
svn ps svn:executable on *.sh
Keyword Substitution
aktivieren:
svn ps svn:keywords 'Id' *.sh
bei jedem Checkin wird nun $Id$ durch einen String „$Id: subversion-config 122 2013-01-08 15:01:58Z magenbrot $“ ersetzt.
Um das Property bei jedem neuen File automatisch zu setzen muss das Subversion-Configfile angepasst werden. Dies liegt üblicherweise in ~/.subversion/config
Hier mal mein aktuelles als Beispiel:
# # grundlegende Subversion Konfiguration # wird in ~/.subversion/config abgelegt # # $Id: subversion-config 122 2013-01-08 15:01:58Z magenbrot $ # [auth] # store-passwords = no [miscellany] enable-auto-props = yes [auto-props] *.sh = svn:keywords=Id;svn:eol-style=native;svn:executable *.py = svn:keywords=Id;svn:eol-style=native;svn:executable *.exe = svn:executable *.pl = svn:keywords=Id;svn:eol-style=native;svn:executable *.pm = svn:keywords=Id;svn:eol-style=native *.php = svn:keywords=Id;svn:eol-style=native *.pas = svn:keywords=Id;svn:eol-style=native *.c = svn:keywords=Id;svn:eol-style=native *.cpp = svn:keywords=Id;svn:eol-style=native *.h = svn:keywords=Id;svn:eol-style=native Makefile = svn:eol-style=native *.txt = svn:keywords=Id;svn:eol-style=native *.png = svn:mime-type=image/png *.jpg = svn:mime-type=image/jpeg *.gif = svn:mime-type=image/gif
Umzug eines Repositories
Der folgende Befehl stellt ein ausgechecktes Repository von einer ungesicherten Verbindung auf einen SSL geschützen Vhost um.
svn switch --relocate http://meinserver.de/svn/tools https://meinserver.de/svn/tools
Vorher sowie nachher lassen sich die Einstellungen über svn info abfragen:
$ svn info Path: . URL: https://meinserver.de/svn/tools Repository Root: https://meinserver.de/svn/tools Repository UUID: 3b6bfc9a-cf72-4c89-941c-58777a1bedca Revision: 178 Node Kind: directory Schedule: normal Last Changed Author: magenbrot Last Changed Rev: 178 Last Changed Date: 2013-06-05 14:57:14 +0200 (Mi, 05 Jun 2013)
libapache2-svn und WebSVN über die gleiche Domain
Hier eine kurze Anleitung, wie man das Apache-Modul für Subversion und WebSVN über die gleiche Domain handlen kann. Ich setze bei mir ISPconfig ein. Damit dann alle User entsprechend zugreifen können, müssen ein paar Dinge konfiguriert werden.
Damit sowohl der Zugriff über WebDAV (läuft als User www-data) und WebSVN (wird mit dem PHP-User ausgeführt (web256) funktioniert, müssen wir auf Filesystem ACLs zurückgreifen. Ist damit leider etwas umständlich und das Dateiesystem muss mit einer zusätzlich Mountoption gemounted werden.
SVN-Modul aktivieren:
a2enmod dav_svn
Wer auch ISPconfig verwendet kommentiert den Inhalt von /etc/apache2/sites-enabled/dav_svn.conf am besten aus. Das machen wir dann direkt über den VHost.
Apache neu starten und danach den Vhost konfigurieren. Meine Beispieldomain ist svn.meinserver.de.
TODO
Ergänzung um „,acl“ in /etc/fstab, z.B.
/dev/xvda1 / ext4 errors=remount-ro,acl,noatime,nodiratime,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1
Filesystem remounten:
mount -o remount /
Und User www-data und web256 gleichermaßen auf die Verzeichnisse berechtigen:
setfacl --set user::rwx,group::r-x,other:r-x,group:www-data:rwx,default:user:web256:rwx,default:group:client23:r-x,default:group:www-data:rwx,default:other:r-x /var/www/clients/client23/web256/svn
No Comments