SVN-Diff-Export – ein simples kleines Tool 7. Dezember 2009 13:42
Es ist nun doch schon eine Weile her, dass ich den letzten Eintrag verfasst habe...die Zeit rennt einem aber auch davon und es ist alles wichtiger als der eigene Blog 
Aber dafür gibt's heute was Feines: ein SVN-Diff-Export-Tool!
Wer sich nun fragt, was das sein soll - ganz einfach: ein PHP-Script, das aus einem Diff zweier SVN-Revisions die geänderten Dateien und Verzeichnisse exportiert.
Das ist sehr praktisch, wenn man einem Kunden "nur mal eben" die Changes schicken will...und dann im Normalfall per Hand aus der WorkingCopy exportieren würde.
So geht's doch viel einfacher - URL zum Repo (bzw. Repo-Pfad) angeben, ggfls. User/Pass, Start- (und optional End-) -Revison, Export-Verzeichnis, fertig.
Ein paar kleine Hinweise noch:
- es ist eine Quick'n'Dirty-Lösung, dementsprechend ist der Code nicht unbedingt "aufgehübscht".
- ggfls. müssen die Pfade zu "svn diff" und "svn cat" im Script (Zeile 46/47) angepasst werden
- sofern open_basedir gesetzt ist dies am besten deaktivieren: /usr/bin/php -d open_basedir="" /path/to/svnDiffExport.php
- sollte das Script abbrechen sollten memory_limit und max_execution_time geprüft werden
- Subversion sollte in einer aktuellen Version vorliegen, da "svn diff" mit den Optionen "--summary" und "--xml" verwendet wird
- das Script verwendet SimpleXML zum Parsen des Diff-Outputs - dementsprechend muss die PHP-Extension installiert sein
- svn:externals werden nicht exportiert
- Getestet wurde es nur kurz, dafür aber auf Windows und Debian Lenny - auf beiden lief es problemlos
- Wie üblich: Keine Garantie & Haftung! Siehe Lizenz.
Download: svnDiffExport.zip
Veröffentlicht in Allgemeines, CodeSnippets