установить svn:externals из скрипта

Я пытаюсь установить свойство svn:externals из сценария bash. Неудачная строка:

svn propset svn:externals \'WEB-INF/src/com/project https://subversion.assembla.com/svn/myProject/branches/Release_$Version/com/project\' .

Где $Version — это переменная, взятая из аргумента командной строки.

Проблема в том, что эта строка отлично работает из подсказки, но не работает в сценарии. Я проверил это, повторив строку в консоли, скопировав и вставив ее в командную строку и запустив. Он отлично работает из подсказки, но не из сценария. При запуске из скрипта я получаю следующую ошибку:

svn: E200009: Cannot mix repository and working copy targets

Я искал сеть в течение нескольких часов, но не могу найти никаких ответов. У меня есть ощущение, что проблема может быть связана с escape-символами, используемыми для экранирования символа ', но я не уверен, как это исправить.


person user1668073    schedule 13.09.2012    source источник


Ответы (1)


Конечно, вы можете попытаться найти правильную комбинацию кавычек и обратной косой черты, но почему бы не использовать вместо этого временный файл? Что-то типа:

cat > some_temp_file << EOF
WEB-INF/src/com/project https://subversion.assembla.com/svn/myProject/branches/Release_$Version/com/project
EOF
svn propset svn:externals --file some_temp_file
rm -f some_temp_file

Обратите внимание, что я не тестировал свой фрагмент.

person Nicola Musatti    schedule 13.09.2012
comment
Спасибо Никола, я попробовал это, и это работает. Спасибо за четкий и лаконичный ответ. - person user1668073; 14.09.2012