2

因此,我们最近将 SVN 服务器从根路径 (svn://sever/) 移动到子文件夹 (svn://server/sub/) 以允许同一服务器上的多个存储库。

我们已经检查了许多工作副本,我们希望保持原样。使用 Tortoise SVN,我们运行了 Relocate 命令,一切似乎都运行良好。

除了外在。我们所有的外部都是相对链接的(使用^/folder/ folder语法),所以实际的外部属性仍然可以正常工作......问题是已经被外部属性签出的文件夹仍然认为它们与旧路径相关联。

当我运行更新时,我从所有外部收到此错误消息:

'svn://server/old/folder/path'
is not the same repository as
'svn://server/sub'

有没有一种方法可以更正工作副本,而无需手动删除/重新定位由外部定义创建的所有文件夹?我们有很多,虽然这是一个选项并且确实有效,但我只是想知道是否有更自动化的方法。

谢谢!

4

1 回答 1

1

svn st --ignore-externals将列出具有“X”状态的外部。您可以围绕它构建一个脚本来查找所有外部,然后执行svn switch --relocate ..... 如果您拥有的唯一外部是相对的,您应该能够盲目地进行重定位,但如果您有任何指向另一台服务器的内容,则需要添加一个svn info步骤以确保外部是需要的搞掂。

于 2009-10-01T15:59:23.060 回答