Установка бита SVN «выполнить» в хранилище Subversion с помощью TortoiseSVN или командной строки SVN - PullRequest
50 голосов
/ 19 сентября 2008

У меня есть приложение с открытым исходным кодом, которое размещено на code.google.com. Это кроссплатформенный (Linux / Windows / Mac). Сначала я загрузил код с машины WinXP, используя TortoiseSVN, и кажется, что ни в одном из командных файлов «configure», используемых для сборки linux, не установлены биты «execute».

Какой самый простой способ установить их для файлов, которые в них нуждаются? Я полагаю, что было бы проще использовать TortoiseSVN, но если это невозможно, я мог бы также использовать командную строку SVN на моей машине с Linux.

Ответы [ 5 ]

83 голосов
/ 19 сентября 2008

Вот как это сделать в командной строке:

for file in `find . -name configure`; do
  svn ps svn:executable yes ${file}
done

Или только для одного файла (здесь имя файла configure):

svn ps svn:executable yes configure
20 голосов
/ 19 сентября 2008

С черепахой SVN это довольно просто: вы можете выбрать несколько файлов (могут быть из результатов поиска, поэтому они не обязательно должны находиться в одном каталоге), выбрать «свойства» в меню TortoiseSVN, добавить необходимое свойство (есть раскрывающийся список наиболее часто используемых свойств, в данном случае «svn: исполняемый файл») и установите значение (в данном случае «*»). Если зафиксировать измененные файлы и проверить их в Linux, будет установлен исполняемый бит.

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

7 голосов
/ 07 января 2011

В Unix используйте {} для адресации результата:

find . -type f -name "*.bat" -exec svn propset svn:executable yes '{}' \;

Кто-нибудь знает, почему это свойство требует «да» в качестве допустимого аргумента? Нашел другой пример с '' вместо да, тоже работает ...

4 голосов
/ 12 ноября 2009
find . -type f -name "*.bat" -exec svn propset svn:executable yes "${}" \;

Конечно, то же самое касается .exe и т. Д.

1 голос
/ 25 ноября 2014

Способ восстановления исполняемых разрешений, потерянных при импорте SVN:

разрешения на копирование из исходного источника, который вы использовали при импорте SVN (текущий каталог в версию 1):

find . -type f | xargs -I {} chmod --reference {} ../version1/{}

затем установите svn: исполняемый файл для всех исполняемых файлов, используя следующий сценарий оболочки:

for file in `find . -executable -type f`; do
  svn ps svn:executable yes ${file}
done
...