Подтвердить что ты не робот

Установка бита "выполнить" SVN в репозитории Subversion с помощью TortiseSVN или командной строки SVN

У меня есть приложение с открытым исходным кодом, размещенное на code.google.com. Это кросс-платформа (Linux/Windows/Mac). Я загрузил исходный код с компьютера WinXP с помощью TortiseSVN, и кажется, что ни один из "настраиваемых" пакетных файлов, которые используются для сборки linux, не имеет установленных битов выполнения.

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Или только для одного файла (configure - это имя файла):

svn ps svn:executable yes configure

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

Метод восстановления исполняемых разрешений, которые теряются во время импорта svn:

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

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

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

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