rendered paste body# Fix svn properties for files that came in before my ~/.svn/config was created function fix_svn_props { # First, fix the svn:keywords (We need -n 1 because svn craps out if it hits # an unversioned file, and won't process any following arguments) find . -regex '.+\.\(php\|pl\|pm\|sh\|js\|css\|html\|htm\|tt\|xml\|sql\)$' \ -print0 \ | xargs -r0 -n 1 svn ps svn:keywords "Id Date Revision Author HeadURL" 2>&1 \ | grep -v 'is not a working copy' # And make sure we have UNIX linefeeds on all files, too. find . -regex '.+\.\(php\|pl\|pm\|sh\|js\|css\|html\|htm\|tt\|xml\|sql\)$' \ -print0 \ | xargs -r0 -n 1 svn ps svn:eol-style "LF" 2>&1 \ | grep -v 'is not a working copy' # Next, the mime types find . -name \*.php -print0 | xargs -r0 -n 1 svn ps svn:mime-type "text/x-php" find . -name \*.p[lm] -print0 | xargs -r0 -n 1 svn ps svn:mime-type "text/x-perl" find . -name \*.sh -print0 | xargs -r0 -n 1 svn ps svn:mime-type "text/x-sh" find . -name \*.js -print0 | xargs -r0 -n 1 svn ps svn:mime-type "text/x-javascript" find . -name \*.sql -print0 | xargs -r0 -n 1 svn ps svn:mime-type "text/x-sql" find . -name \*.html -print0 | xargs -r0 -n 1 svn ps svn:mime-type "text/x-html" find . -name \*.htm -print0 | xargs -r0 -n 1 svn ps svn:mime-type "text/x-html" find . -name \*.tt -print0 | xargs -r0 -n 1 svn ps svn:mime-type "text/x-html+tt" find . -name \*.css -print0 | xargs -r0 -n 1 svn ps svn:mime-type "text/x-css" find . -name \*.txt -print0 | xargs -r0 -n 1 svn ps svn:mime-type "text/plain" find . -name \*.tt -print0 | xargs -r0 -n 1 svn ps svn:mime-type "text/plain" find . -name \*.bmp -print0 | xargs -r0 -n 1 svn ps svn:mime-type "image/bmp" find . -name \*.gif -print0 | xargs -r0 -n 1 svn ps svn:mime-type "image/gif" find . -name \*.ico -print0 | xargs -r0 -n 1 svn ps svn:mime-type "image/x-icon" find . -name \*.jpeg -print0 | xargs -r0 -n 1 svn ps svn:mime-type "image/jpeg" find . -name \*.jpg -print0 | xargs -r0 -n 1 svn ps svn:mime-type "image/jpeg" find . -name \*.png -print0 | xargs -r0 -n 1 svn ps svn:mime-type "image/png" find . -name \*.tif -print0 | xargs -r0 -n 1 svn ps svn:mime-type "image/tiff" find . -name \*.tiff -print0 | xargs -r0 -n 1 svn ps svn:mime-type "image/tiff" find . -name \*.pdf -print0 | xargs -r0 -n 1 svn ps svn:mime-type "application/pdf" # And now a handful of executable flags find . -name \*.pl -print0 | xargs -r0 -n 1 svn ps svn:executable on find . -name \*.sh -print0 | xargs -r0 -n 1 svn ps svn:executable on }