Как я могу массово конвертировать изображения, сохраненные как текст / ASCII в SVN, в двоичный файл? - PullRequest
3 голосов
/ 06 декабря 2010

Каким-то образом изображения были сохранены как text / ascii, и мне нужно рекурсивно сделать это для сотен каталогов изображений, все в одной корневой директории images.

У меня есть некоторые инструкции здесь которые говорят мне:

svn proplist <yourfile>
svn propdel svn:eol-style <yourfile>
svn propset svn:mime-type application/octet-stream <yourfile>

Есть ли какой-нибудь родной svn рекурсивный способ, которым я могу это сделать?Если нет, может кто-нибудь посоветовать, как я могу рекурсивно применить это с помощью bash-скрипта?

Ответы [ 3 ]

3 голосов
/ 06 декабря 2010

На оболочке:

find -name '*.png' -exec \
sh -c "svn propdel svn:eol-style {} && svn propset svn:mime-type image/png {}" \;
1 голос
/ 02 июля 2012

Следующий код PowerShell достигнет того, что вы хотите сделать:

foreach( $file in get-childitem -name -include *.png -exclude .svn -recurse) {
    &  svn propdel svn:eol-style $file;
    & svn propset svn:mime-type image/png $file
};
1 голос
/ 06 декабря 2010

У меня нет репозитория Subversion, где я могу проверить это, но это не должно быть слишком сложно:

find . -name .svn -prune -o print

Будет выведен список всех файлов в вашем рабочем каталоге (без каталогов .svn).

Теперь вы можете комбинировать это с циклом чтения пока

find . -name .svn -prune -o print | while read file
do
   svn propdel svn:eol-style $file
   svn propset svn:mime-type application/octet-stream $file
done

Теперь вы заметили, что я не проверяю, установлено ли для файлов это свойство или нет. Мне просто все равно. И это будет делать каждый файл. Если вы хотите создать файл определенного типа, вам нужно изменить команду find:

find . -name .svn -prune -o -name "*.jpg" print

Я настоятельно рекомендую вам начать с чистого рабочего каталога Subversion и запустить такой тест:

find . -name .svn -prune -o print | while read file
do
   echo svn propdel svn:eol-style $file
   echo svn propset svn:mime-type application/octet-stream $file
done

Если результат этого выглядит хорошо, то удалите echo и позвольте ему разорваться.

...