07
- Oktober
2011
Posted By : Thomas Weller
Subversion Cleanup Probleme mit Verzeichnissen
Ab und zu hatte ich das Problem, dass Tortoise (eine grafische Oberfläche für Subversion) gewisse Operationen nicht durchführen kann. Dann schlägt es vor, das Cleanup-Kommando auszuführen. Cleanup selbst meldet dann jedoch Fehler. Abhilfe schafft das Anlegen der fehlenden Verzeichnisse in den Verwaltungsstrukturen von Subversion (.svn-Ordner). Bei tiefen Verzeichnisstrukturen hat man jedoch allerhand zu tun. Zuletzt trat der Fehler bei mir in einer sehr tief verschachtelten Ordnerstruktur auf, so dass ich zu anderen Mitteln greifen musste: einer Batch-Datei, welche die Korrektur rekursiv vornimmt. @echo off REM Remove quotes for now, otherwise we have it duplicated in the for loop set "folder=%~1" set "file=%~2" REM Default folder is current directory if "%folder%"=="" set folder=. REM If SVN directory is found, go and fix it if "%file%"==".svn" goto fixsvn REM Process subfolders for /f "delims=" %%d IN ('dir /ad /w /b "%folder%"') DO call %0 "%folder%/%%d" "%%~d" goto ende :fixsvn echo "Fixing %folder% ..." mkdir "%folder%/props" 2> NUL mkdir "%folder%/prop-base" 2> NUL mkdir "%folder%/text-base" 2> NUL mkdir "%folder%/tmp" 2> NUL mkdir "%folder%/tmp/prop-base" 2> NUL mkdir "%folder%/tmp/props" 2> NUL mkdir "%folder%/tmp/text-base" 2> NUL :ende Diesen Code einfach in eine Batch-Datei einfügen, die Batch-Datei in den beschädigten Ordner legen und ausführen. Die Batch-Datei ermittelt dann selbstständig alle .svn-Ordner und legt fehlende Unterverzeichnisse an. Warum das nicht im Cleanup-Kommando eingebaut ist weiß ich nicht. Das Problem besteht zumindest schon seit 2006, wie ein Bug-Eintrag zeigt. Update 2012-01-10: Verbesserte Ausgabe. Die Datei hilft übrigens auch bei einem missglückten "Upgrade Working Copy" beim Update auf Tortoise 1.7, wenn ein Cleanup gar nicht mehr zur Verfügung steht. Update 2012-01-12: Fehler behoben: Script funktioniert jetzt auch, wenn die SVN-Struktur Ordner mit & enthält. Etwas mehr Anführungszeichen haben geholfen. Hat Ihnen dieser Artikel geholfen, Ihre Probleme zu lösen? Falls ja, spenden Sie doch einige Kleinigkeit an mich, damit ich motiviert bin, auch zukünftig Informationen dieser Art bereitzustellen. Vielen Dank!

Schreibe einen Kommentar