修改 externals 属性中的 svn 仓库 URL

6

我正在将我的代码库迁移到新的位置,但是我有一些文件夹中的 externals 属性中硬编码了相同的代码库 URL。例如:
旧的URL: https://OldLocation.Domain/svn/
新的URL: https://NewLocation.Domain/svn/

我该如何将旧的代码库 URL 更改为新的?简单地编辑属性并不能解决问题。


我不太明白你所说的“编辑属性无效”是什么意思。你是在使用 svn propget svn:externalssvn propset svn:externals 命令吗? - Vladimir
2个回答

11

您应该使用相对路径(自从 SVN 1.5 版本之后可用):

要么使用"../"相对于当前路径,

要么使用"^/"相对于您的仓库根目录。

您还可能需要删除(或移走)外部文件夹的当前内容,以便更新可以将数据写入磁盘(请记住:SVN 不会覆盖现有的文件)。


1
请注意,您只需要运行svn 1.5或更高版本的客户端。我已经成功地将其与1.4服务器和1.5/1.6客户端配合使用。 - Paul Stephenson

3
如果我正确理解了您的情况,那么svn:externals属性指向与属性所在目录相同存储库中的URL。也就是说,位置
https://OldLocation.Domain/svn/project/path/to/a/directory
具有指向以下内容的svn:externals属性
https://OldLocation.Domain/svn/project/path/to/an/external/library
如果您的Subversion客户端都使用1.5或更高版本,则可以使用以下内容替换所有这些外部引用
^/path/to/an/external/library
其中^表示“该目录所在项目的根目录”。
然后,当您将整个存储库移动到NewLocation.Domain时,svn:externals属性将跟随并引用NewLocation.Domain,您的问题将得到解决。
话虽如此,我认为编辑属性应该有效(而且您需要这样做才能转换为^格式),但您可能需要进行一些组合操作,例如删除本地检出的外部引用、更新和提交以满足svn神灵的要求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接