Kategorie: Subversion

SVN 1.7 in XCode 4.3+

Die von XCode verwendeten Subversion-Binaries liegen direkt unter Xcode.app, d.h. diese Dateien müssen durch eine aktuelle Version von Subversion ersetzt bzw. auf diese verlinkt werden. Eine aktuelle Version von Subversion sollte bereits lokal installiert. Nutzt man dazu macports, dann liegen diese Dateien zum Beispiel unter /opt/local/bin/. Und so geht’s:

Zunächst ins bin/-Verzeichnis von Xcode wechseln:

cd /Applications/Xcode.app/Contents/Developer/usr/bin/

Zur Sicherheit ein Backup der aktuellen SVN-Dateien machen:

sudo mkdir backup-svn
sudo mv svn* backup-svn/

Abschließend erstellt man einen symbolischen Link zu den gewünschten svn-Dateien:

sudo ln -s /opt/local/bin/svn* ./

svn propset rekursiv anwenden

svn propset ... erwartet normalerweise eine Datei, auf die eine Property gesetzt werden kann. Um eine Eigenschaft auf alle Dateien eines Verzeichnisses anzuwenden, muss man sich dem Parameter -R bedienen. Der komplette Befehl sieht dann beispielsweise so aus:

svn propset svn:keywords 'Date Id Revision' -R *

Hiermit wird propset auf alle Dateien in allen Unterverzeichnissen angewendet. Möchte man den Befehl nur auf php-Dateien anwenden, dann sieht das Ganze so aus:

svn propset svn:keywords 'Date Id Revision' -R *.php

Bash: rekursives löschen aller .svn Verzeichnisse

Subversion legt bei der Verwaltung eines Verzeichnisses im selbigen und in jedem enthaltenen Unterverzeichnis ein .svn-Verzeichnis für die Verwaltung der Dateien an. Aus welchem Grund auch immer man diese .svn-Verzeichnisse löschen möchte, hier zwei einfache Befehle:

Zum Testen:

find . -mindepth 1 -type d -name .svn -print0 | xargs -0 -r ls -ld

Zum Löschen:

find . -mindepth 1 -type d -name .svn -print0 | xargs -0 -r rm -rf

Subversion global ignore list

Um Dateien im lokalen Subversion-System global zu ignorieren sind folgende Kommandos auszuführen:

mate ~/.subversion/config

In der geöffneten Datei ist die Zeile

global-ignores = 

auszukommentieren. Hier kann man dann nach belieben weitere Dateien (name.typ) oder Dateitypen hinzufügen (*.typ). Die einzelnen Dateitypen/-namen sollten durch ein Leerzeichen getrennt werden.

SVN: Log-Eintrag nach einem Commit ändern

Log-Meldungen werden im Repository als eine Eigenschaft zu jeder Revision beigefügt. Standardmäßig kann diese Eigenschaft (svn:log) nicht mehr bearbeitet werden, sobald ein commit erfolgte. Auch wenn Subversion solche Änderungen der Revision Eigenschaften (wie svn:log eine ist) versucht zu verhindern, gibt es jedoch eine Reihe von Möglichkeiten, um diese Eigenschaft anzupassen.