Tortoise SVN Switch分支命令错误 - "分享没有共同的祖先"

时间:2014-12-15 03:17:59

标签: svn tortoisesvn svn-switch

当我尝试做"切换"将目录更改为其他分支我收到一条奇怪的错误消息。

这是设置存储库的方式,从主机的网站上查看它。我曾经有一个名为bugfix-lobby-quirks的分支,但是在我将它合并到trunk后它被删除了。这和游戏中的新功能 - 对手 - 卡都是从后备箱分支出来的。

enter image description here

现在我想把我签出的工作副本"切换"从已删除的分支到此新分支。我已经在我的计算机上检查了bugfix-lobby-quirks分支,因为我正在处理它。我想要做的是将此文件夹中的所有内容切换到我选择的新分支中的所有内容,这很好,因为它们并非真正 不同。这就是svn开关的意思,对吧?

enter image description here

然后我点击开关并弹出一个弹出窗口。它会自动识别分支并在此处显示在列表中,因此我选择它。

enter image description here

不幸的是,这样做会导致每次出现此错误消息。

enter image description here

这不是快乐的一天。这是一个悲伤的日子。

确定。那么我做错了什么?

3 个答案:

答案 0 :(得分:29)

点击"忽略祖先" svn切换对话框中的复选框。

答案 1 :(得分:3)

您可能会因为尝试切换其中一个子文件夹而不是顶级文件夹而得到此信息。也就是说,您试图仅切换文件夹中继/应用程序而不是中继。

答案 2 :(得分:2)

您可以已删除的分支切换到活动分支。对于Subversion,该分支不再存在。 (因为它不存在,它不会分享任何祖先)。

转到已删除分支的工作副本,看看是否可以在删除分支本身之前对修订版进行更新。然后,尝试开关。

如果这不起作用,则必须取消删除您的分支。从命令行来看这并不困难。我们假设你的分支在修订版12345中被删除了:

$ svn co --set-depth=immediates $URL/branches   # Checks out just branch names
$ cd branches
$ svn merge -c -12345 .                         # Removes branch delete

--set-depth=immediates会结帐所有分支机构,但不会检查其下方的项目。这将是一个相当快速的结账,并为您提供/branches目录的工作目录。现在,您可以执行删除的反向合并,并恢复分支。

如果您不想进行结帐和合并,则可以执行svn cp,将从修订版中复制分支,然后将其删除到当前版本:

$ svn cp -r12344 $URL/branches/features_in_opponents_cards@12344 $URL/branches

这样您就可以在不先办理结账的情况下恢复分支。