Subversion

Versionsverwaltung für Sourcecode.

Update: Inzwischen verwende ich nur noch git

Binaries für OSX

Erhältlich waren diese von open.collab.net - inzwischen nicht mehr erreichbar.

Setup

Eine gute Schritt für Schritt Anleitung gab es unter: www.bombaydigital.com/arenared/2005/10/27/1

svnadmin create /xxx/Repository/
svnadmin create /xxx/Repository/rsys_fields

svn import /xxx/htdocs/dev/typo3conf/ext/rsys_fields/ file:///xxx/Repository/rsys_fields/ -m "Initial import"

Update

Ich habe von 1.4 auf 1.55 geupdated. Beim Aufruf von svn wurde jedoch das eingebaute svn 1.4 gestartet. Ich habe die Dateien verschoben, dass sie nicht mehr im Pfad sind:

cd /usr/bin/
mv svn* _MOVED/

Die installierten sind nun unter /usr/local/bin/svn

Erstellt: 07/2010| Geändert: 03/2023

Subversion Clients

Webbasierte Clients

Apache

Apache ermöglicht den Zugriff auf Repositories via http, was viele Clients benötigen. In die Apache Konfiguration folgendes:

# svn applications
<Location /svn/applications>
        AllowOverride All
        Options +Includes Indexes FollowSymLinks
        DAV svn
        SVNPath /rsys-repositories/rsys-applications
        SVNAutoversioning off
        AuthType Basic
        AuthName "Rootsystem Subversion Repository"
        AuthUserFile xxx.passwd
        Require valid-user

     # Make it look nicer
     SVNIndexXSLT "/repos-web/view/repos.xsl
</Location>

ViewVC

Ich musste die Python Skripte austauschen:

# von
/opt/subversion/lib/svn-python

# nach
/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/libsvn

Die alten sind im Verzeichniss _MOVED gesichert. Das bin/cgi/viewvc.cgi wurde bei mir eingebunden mit einem Eintrag in httpd.conf:

ScriptAlias /viewvc /usr/local/viewvc-1.0.7/bin/cgi/viewvc.cgi

Konfiguration in /usr/local/viewvc-1.0.7/viewvc.conf und Styles anpassen in templates/docroot/styles.css

OSX Clients

SvnX

Ein mässig nützliches Frontend: http://www.apple.com/downloads/macosx/development_tools/svnx.html

rapidsvn

Schon etwas besser: http://rapidsvn.tigris.org

Erstellt: 07/2010| Geändert: 10/2015

Eclipse

SVN Projekt anlegen  

New->Project: Use existing repository location: http://localhost/svn/typo3

Browse: projectname/trunk

Check out as project with the name specified

SVN Header Informationen in Source file schreiben

In den Header des Sourcefiles folgendes schreiben:

/* SVN FILE: $Id$ */
/**
* Project Name : Project Description
*
* @package className
* @subpackage subclassName
* @author $Author$
* @copyright $Copyright$
* @version $Revision$
* @lastrevision $Date$
* @modifiedby $LastChangedBy$
* @lastmodified $LastChangedDate$
* @license $License$
* @filesource $URL$
*/

 Eclipse: Preferences->Team->SVN->Properties Configuration->Automatic Properties

Filename: *.*
svn:keywords=Date Author Id Copyright Revision LastChangedBy LastChangedDate URL
copyright="(C) 2009 Rootsystem"

SVN Kommandozeile

Um dasselbe für die Kommandozeile zu erreichen folgendes in die Konfigurationsdatei ~/.subversion/config schreiben:

[miscellany]
enable-auto-props = yes

[auto-props]
*.php = svn:keywords=Date Author Id Copyright Revision LastChangedBy LastChangedDate License URL

Vorher folgende Kommandos ausführen:

svn propset copyright “(c)2007 My Company. All Rights Reserved.” ./*
svn propset license -F /path/to/LICENSE ./

Erstellt: 07/2010| Geändert: 10/2015

Mehrere Dateien umbenennen

Um mehrere Dateien umzubenennen (im SVN und im Filesystem) kann folgendes bash kommando verwendet werden: 

// rename files (svn) real
for name in `find ./* ! -regex .*.svn.*`; do newname=`echo $name | sed 's/archive/gallery/g'`;if [ "$name" != "$newname" ]; then  svn rename  "$name"  "$newname"; fi; done

 Um den Inhalt auch noch umzubenennen folgendes (hat zwar nichts mehr mit Subversion zu tun, aber Dateien umbenennen und Texte ändern bracht man um aus einer Extension eine Andere abzuzweigen):

# replace content
find ./ -iname '*.*' -type f -exec sed -i '' 's/archive/gallery/g' {} \; 

Erstellt: 07/2010| Geändert: 10/2015

SVN Buch

Hier das Buch zu Subversion Version 1.5. Ich habe 2 Versionen bei mir hier abgelegt - beide als einseitiges HTML:

Version Control with Subversion (Englisch)

Versionskontrolle mit Subversion (Deutsch)

Das Buch ist unter der Creative Commons Attribution License

 

Erstellt: 07/2010| Geändert: 10/2015