Правильный способ добавления svn: executable

У меня есть несколько файлов, которые исполнялись до того, как они добавили их. Они имеют набор свойств svn: executable. Теперь несколько других файлов были отмечены без исполняемого бита, и я не хочу установить свойство svn: executable:

$ svn propset svn:executable on *.cgi

Затем я проверяю статус и даже файлы с svn: исполняемый файл были изменены:

$ svn diff
Property changes on: a.cgi
___________________________________________________________________
Modified: svn:executable
   - 
   + *


Property changes on: b.cgi
___________________________________________________________________
Added: svn:executable
   + *

a.cgi не следует изменять. Я хочу добавить бит svn: executable, который будет установлен таким же образом, как и в других файлах, но не может определить команду для его выполнения.

Ответ 1

Вы имеете право использовать команды редактирования свойств svn. Свойство svn: executable.

Чтобы добавить "исполняемый бит" в svn

svn propset svn:executable on <list of files>

Чтобы удалить "исполняемый бит" в svn

svn propdel svn:executable <list of files>

Здесь размещена документация по SVN.

Если вы не изменяете исполняемые файлы, вы не изменяете исполняемый файл (контрольная сумма проверяет это), но вы изменяете репозиторий SVN. Помните, что SVN версии файловых систем, а не только файлы; поэтому изменение битов разрешения будет увеличивать номер версии SVN, даже если это просто модификация свойств файла (а не модификация самого файла).

Ответ 2

Вот как я устанавливаю исполняемое свойство для всех файлов *.py в моем проекте, у которых есть бит выполнения, установленный на них. Я выполняю это из каталога верхнего уровня

for f in `find ./ -name '*.py'`; do echo $f; if [ -x $f ]; then echo $f 'is executable setting svn:executable'; svn propset svn:executable on $f; else echo $f 'is not executable'; fi; done;