1

svn:externalsbash スクリプトからプロパティを設定しようとしています。失敗する行は次のとおりです。

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

何時間もネットを検索しましたが、答えが見つかりません。問題は ' 文字をエスケープするために使用されるエスケープ文字に関係している可能性があると感じていますが、それを修正する方法がわかりません。

4

1 に答える 1

2

引用符と円記号の正しい組み合わせを見つけることは確かにできますが、代わりに一時ファイルを使用してみませんか?何かのようなもの:

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

スニペットをテストしていないことに注意してください。

于 2012-09-13T09:33:36.637 に答える