svn重定位错误 - 无效的重定位目标

时间:2015-01-23 19:49:05

标签: svn

我们的svn repo的位置被更改为不同的URL,此外,树干,分支和标签的相对路径被移动了一点。现在当我尝试svn relocate时,我收到了这条消息。

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

我尝试重新定位到repo的url,并再次使用我想切换到的分支的url。我没有尝试使用switch --relocate,因为在我的svn版本中已弃用。

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

3 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:3)

根据TortoiseSVN,如果满足以下条件,则不应使用relocate命令:

您要切换到同一存储库中的其他分支或目录。为此,您应该使用TortoiseSVN→切换...。有关更多信息,请阅读“结帐或切换...”部分。

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

答案 2 :(得分:0)

(这意味着对@ AlexMA自己的回答发表评论,但有些回答是独立的。)

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