是否可以远程更改subversion存储库的“svn:externals”属性?

时间:2010-07-20 01:57:07

标签: svn

我正在尝试通过此命令更改远程存储库的“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'

我做错了吗?无论如何通过命令行远程更改它?

5 个答案:

答案 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]

  1. 更改工作副本中的版本化文件或目录属性。
  2. 更改存储库修订版本的无版本属性。  (TARGET仅确定要访问的存储库。)
  3. 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