2012-09-13 56 views
1

我想从bash脚本中设置svn:externals属性。失败的线是:set svn:从脚本的外部

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 

我搜索了几个小时的网络,但找不到任何答案。我有一种感觉,问题可能是用于逃避字符的转义字符,但我不知道如何解决它。

回答

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 

请注意,我没有测试过我的代码段。

+0

谢谢尼古拉,我试过这个,它的工作原理。感谢您提供清晰简洁的答案。 – user1668073