我正在尝试通过此命令更改远程存储库的“svn:externals”属性:
svn ps svn:externals "vendor1 http://vendor_repo_here.com" http://main-repo-here.com
我期待上面的命令将“svn:externals”属性从“vendor1 http://vendor_repo_here.com”更改为“但是它会引发错误:
Setting property on non-local target 'http://main-repo-here.com' needs a base revision.
所以我试试这个:
svn ps -r HEAD svn:externals "vendor1 http://vendor_repo_here.com" http://main-repo-here.com
现在说:
Cannot specify revision for versioned property 'svn:externals'
我做错了吗?无论如何通过命令行远程更改它?
答案 0 :(得分:31)
我有类似的问题。 Turtoise似乎要结账然后再提交,所以我写了一个同样的脚本。
svn checkout <URL> repocopy --depth 'empty'
svn propget svn:externals repocopy > tmp2
//whatever you want to do > tmp_new
svn propset svn:externals repocopy -F tmp_new
svn commit -m "commit comment" tmp
rm -f -r repocopy
rm tmp2
rm tmp_new
答案 1 :(得分:4)
在svn propset的帮助下:
propset(pset,ps):设置文件,目录或修订版的属性值。 用法:1。propset PROPNAME PROPVAL PATH ... 2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]
svn:externals是一个版本化属性,不能以这种方式更改。
答案 2 :(得分:1)
可以使用TortoiseSVN远程更改svn:externals
:
TortoiseSVN&gt; Repo-Browser&gt; (select svn:externals dir)&gt;显示属性&gt;修改
这适合我。
知道为什么TortoiseSVN能够svn
无法做到这一点会很有趣。
答案 3 :(得分:0)
Propedit将适用于修订属性,不确定propset但是应该适用。
然而:必须修改repo以允许修改属性编辑(在pre-revprop-change挂钩中),否则它们将被拒绝。完成后,您可以设置其他修订版本属性,如作者,日期,日志注释等(当然,您的钩子可以变得聪明,拒绝除外部更改之外的所有内容,但您需要知道您必须在该功能中进行编码)< / p>
您必须设置一个编辑器 - 我认为您不能直接覆盖现有值(除非propset这样做),因为它希望显示您要编辑的现有值。
答案 4 :(得分:0)
当您安装subversion时,在'svn'命令旁边安装了另一个名为'svnmucc'的命令。 'svnmucc'能够根据命令行设置属性url。这包括版本化属性。
d:>svnmucc
enter code Subversion multiple URL command client
usage: svnmucc ACTION...
Perform one or more Subversion repository URL-based ACTIONs, committing
the result as a (single) new revision.
Actions:
cp REV SRC-URL DST-URL : copy SRC-URL@REV to DST-URL
mkdir URL : create new directory URL
mv SRC-URL DST-URL : move SRC-URL to DST-URL
rm URL : delete URL
put SRC-FILE URL : add or modify file URL with contents copied from
SRC-FILE (use "-" to read from standard input)
propset NAME VALUE URL : set property NAME on URL to VALUE
propsetf NAME FILE URL : set property NAME on URL to value read from FILE
propdel NAME URL : delete property NAME from URLhere