Установить SVN: внешние из скрипта

Я пытаюсь установить 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-символами, используемыми для экранирования "персонажа", но я не уверен, как это исправить.

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

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

Другие вопросы по тегам