在属性值中使用带有shell脚本变量的svn setprop
我想在shell脚本中的在属性值中使用带有shell脚本变量的svn setprop,svn,shell,Svn,Shell,我想在shell脚本中的svn setprop svn:externals命令中使用一个变量 路径被设置为变量,可以正常工作: LOCALPATH="/some/path" TARGETFOLDER="folder" svn propset svn:externals 'dir -r100 http://svn.example.com/repos/trunk' $LOCALPATH/$TARGETFOLDER/externals 但是,如果我尝试使用一个变量作为修订号,它将不起作用: LOCA
svn setprop svn:externals
命令中使用一个变量
路径被设置为变量,可以正常工作:
LOCALPATH="/some/path"
TARGETFOLDER="folder"
svn propset svn:externals 'dir -r100 http://svn.example.com/repos/trunk' $LOCALPATH/$TARGETFOLDER/externals
但是,如果我尝试使用一个变量作为修订号,它将不起作用:
LOCALPATH="/some/path"
TARGETFOLDER="folder"
REV="100"
PROP="'dir -r$REV http://svn.example.com/repos/trunk'"
echo $PROP
svn propset svn:externals $PROP $LOCALPATH/$TARGETFOLDER/externals
PROP
变量正确回显,但propset
不起作用。我总是遇到以下错误:
svn: Cannot specify revision for setting versioned property 'svn:externals'
任何帮助都将不胜感激。这是在shell中转义单引号的问题。见解释。在处理您的案例时,发现以下组合有效:
....
PROP="dir -r$REV http://.../trunk"
svn propset svn:externals ''"$PROP"'' $LOCALPATH/$TARGETFOLDER/externals
这是在shell中转义单引号的问题。见解释。在处理您的案例时,发现以下组合有效:
....
PROP="dir -r$REV http://.../trunk"
svn propset svn:externals ''"$PROP"'' $LOCALPATH/$TARGETFOLDER/externals
我没有发现你的剧本有什么问题。不过,我也遇到了同样的问题
如果您被此脚本阻塞,您可以考虑使用外部文件< /强>设置属性:
LOCALPATH="/some/path"
TARGETFOLDER="folder"
REV="100"
PROP="'dir -r$REV http://svn.example.com/repos/trunk'"
echo $PROP > svn.externals
svn propset svn:externals -F svn.externals
# rm svn.externals
注意:调试shell脚本时,可以使用xtrace标志,而不是回显命令:
sh -x myscript.sh
它将输出每个执行的命令,并在前面加上
+
我没有发现脚本有任何错误。不过,我也遇到了同样的问题
如果您被此脚本阻塞,您可以考虑使用外部文件< /强>设置属性:
LOCALPATH="/some/path"
TARGETFOLDER="folder"
REV="100"
PROP="'dir -r$REV http://svn.example.com/repos/trunk'"
echo $PROP > svn.externals
svn propset svn:externals -F svn.externals
# rm svn.externals
注意:调试shell脚本时,可以使用xtrace标志,而不是回显命令:
sh -x myscript.sh
它将输出每个以
+
开头的已执行命令,尝试删除PROP
值周围的单引号。我需要将属性用单引号括起来,才能使propset
命令起作用。如果在最后一行使用svn:external'$PROP'$LOCALPATH
,则$PROP
将被视为字符串文字。请尝试删除PROP
值周围的单引号。我需要将属性用单引号括起来,才能使propset
命令起作用。如果在最后一行使用svn:external'$PROP'$LOCALPATH
,$PROP
将被视为字符串文字。谢谢。设置属性后是否可以删除svn.externals
文件,或者它是否被subversion引用?是。有些人也喜欢将此文件签入svn,但我认为您不应该签入,因为propget会将值返回给您。谢谢。设置属性后是否可以删除svn.externals
文件,或者它是否被subversion引用?是。有些人也喜欢将此文件签入svn,但我认为您不应该这样做,因为propget会将值返回给您。