Subversion: Wurzelverzeichnis eines Repositories ändern


Um das Root-Verzeichnis eines SVN-Repositories zu ändern (z.B. nach einem Server-Umzug oder Domainänderung), ohne einen neuen Checkout der Arbeitskopie machen zu müssen, reicht ein einfacher Befehl:

svn switch --relocate [alte-URL] [neue-URL]

Das Ergebnis kann mit svn info überprüft werden. Wenn dort unter "Repository Root" die neue URL steht, passt alles und man kann ganz normal weiterarbeiten.

bheil@home:~/SVN/b3$ svn info
URL: https://secure.bheil.net/b3
Basis des Projektarchivs: https://secure.bheil.net/b3
[...]

bheil@home:~/SVN/b3$ svn switch --relocate https://secure.bheil.net/b3 https://ssl.bheil.net/svn/b3

bheil@home:~/SVN/b3$ svn info
URL: https://ssl.bheil.net/svn/b3
Basis des Projektarchivs: https://ssl.bheil.net/svn/b3
[...]

Mehrere Dateien in Subversion ignorieren?


Letzt beschrieb ich, wie in Subversion pyc-Files ignoriert werden können. Schön und gut. Aber bei einigen Verzeichnissen muss auch noch eine zweite oder dritte Datei ignoriert werden. Nichts einfacher als das, dachte ich, wird ja kumulativ sein. Also verwendete ich die gleiche Anweisung, um auch die zweite Datei zu ignorieren. Das Ergebnis war ebenso unerwartet wie ernüchternd: Die vorherige Einstellung, also der Wert von svn:ignore, wurde schlichtweg überschrieben.

Anscheinend ist der einzige Weg, Subversion da mehrere Dinge beizubringen, der, zuerst eine Datei zu erzeugen mit jedem zu ignorierenden Pattern in eine eigene Zeile, also z.B. so:

*.pyc
dev.db
.pydevproject
.project

Dann kann dies mit folgender Anweisung hinzugefügt werden:

svn ps svn:ignore -F DATEINAME trunk/

Elegant ist was anderes. Und intuitiv ist das auch nicht. Hab ich vielleicht etwas übersehen und gibts doch ne bessere Lösung dafür?

Jedenfalls sollte aber das Ergebnis überprüft werden, damit da nichts schief gegangen ist:

[12:05:51]bheil@192.168.178.3:~/SVN> svn propget svn:ignore trunk
*.pyc
dev.db
.pydevproject
.project

Subversion beibringen, *.pyc-Files zu ignorieren


Wer Python-Projekte mit Subversion verwaltet, wird das leidige Thema kennen, das Subversion auch kompilierte Python-Dateien mit der Endung pyc beachtet. Mit folgendem Befehl kann das unterbunden werden: Die Endung *.pyc wird in jedem Verzeichnis zur Eigenschaft svn:ignore hinzugefügt und somit beachtet Subversion das nicht mehr.

svn -R propset svn:ignore "*.pyc" .

Irgendwo stand, dass Subversion in der neuesten Version pyc-Files nicht mehr beachtet würde. Damit wäre das hinfällig. Aber in SVN 1.5.1 ist das anscheinend noch nicht der Fall.

Checkout des Django 1.0 Subversion-Branches


Da das leider nicht direkt auf der Django-Webseite verlinkt ist und ich immer danach suchen muss, hier die Anweisung, wie die derzeit stabile Version 1.0 von Django direkt aus dem SVN ausgecheckt werden kann:

svn co http://code.djangoproject.com/svn/django/branches/releases/1.0.X/ django-1.0.x

In diesen Branch fliessen nur Sicherheitsaktualisierungen. Somit bietet sich dies für den produktiven Einsatz an.