SVN 重新定位错误 -- 无效的重新定位目标



我们的 svn 存储库的位置被更改为不同的 url,此外,主干、分支和标签的相对路径也移动了一点。 现在,当我尝试svn relocate时,我收到此消息。

Invalid relocation destination: 'https://my-repo-server/new-proj-name/branches/my-branch' (does not point to target)

我尝试重新定位到存储库的 url,然后再次尝试使用我要切换到的分支的 url。 我没有尝试使用switch --relocate,因为它在我的 svn 版本中已弃用。

我相信如果文件夹结构没有改变,这会起作用。

用权宜之计解决了它——从工作副本的根目录内,删除了 .svn 文件夹并运行svn checkout <new-url-of-branch> .

如果有人有更好的答案,不涉及删除.svn文件夹,我会选择它。

根据TortoiseSVN,在以下情况下不应使用relocation命令:

您希望切换到同一存储库中的其他分支或目录。为此,您应该使用TortoiseSVN→ Switch。阅读名为"结帐或切换..."了解更多信息。

因此,您应该执行svn switch https://my-repo-server/new-proj-name/branches/my-branch,因为您要在同一存储库中移动。

(这是对@AlexMA自己答案的评论,但有些最终是自己回答的。

也许可以使用sqlite3 CLI编辑.svn目录中的wc.db。但首先必须找出数据库的结构才能直接通过SQL编辑相关表 - 只需转储wc.db,编辑转储文件,像存储库一样加载回去会导致工作副本不再被识别。但这可能会带来更多问题。在所有工作副本被SVN开发人员视为可有可无之后,因此最好将WC更新到旧存储库的最新版本,从同一修订版的新存储库中签出新WC,然后将所有未提交的修改从旧WC复制到新WC并重新创建任何更改列表。

最新更新