Ich hatte das Problem das ich über ein ganzes Projektverzeichnis bei bestimmten Dateien (.php, .phtml, .js, .css) ein svn propset ausführen wollte. Unter Windows und TortoiseSVN hat man zwar die Möglichkeit über ein ganzes Verzeichnis rekursiv ein Property zu setzen, jedoch nicht nach Dateiendungen zu entscheiden ob es gesetzt werden soll. Eine einfache und schnelle Möglichkeit ist dazu das Unix/Linux Tool ‘find’.

Nach Dateien suchen und dabei Dateien in einem .svn Verzeichnis nicht durchsuchen. Auf jedes gefundene File ein svn propset anwenden:

find \! -wholename \*.svn\* -type f  \( -name \*.php -o -name \*.phtml -o -name \*.css -o -name \*.js -o -name \*.ini \) -exec svn propset svn:keywords 'Date Revision Author HeadURL Id' {} \;

Das ganze kann natuerlich auch fuer andere Dateioperationen angewandt werden wir zum Beispiel dos2unix:

find \! -wholename \*.svn\* -type f  \( -name \*.php -o -name \*.phtml -o -name \*.css -o -name \*.js -o -name \*.html -o -name \*.ini \) -exec dos2unix {} \;

Bei den Beispielen werden alle ‘.svn’ Verzeichnisse nicht durchsucht: \! -wholename \*.svn\*
Es wird nur nach Dateien gesucht: -type f
Und nur nach Dateien mit der Endung .php .phtml .css .js .html .ini : \( -name \*.php -o -name \*.phtml -o -name \*.css -o -name \*.js -o -name \*.html -o -name \*.ini \)