27

当我尝试“切换”以将目录更改为不同的分支时,我收到一条奇怪的错误消息。

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

在此处输入图像描述

现在我想将我签出的工作副本从已删除的分支“切换”到这个新分支。我的电脑上已经检查了 bugfix-lobby-quirks 分支,因为我只是在处理它。我想要做的是将此文件夹中的所有内容切换到我选择的新分支中的所有内容,这很好,因为它们并没有那么不同。这就是 svn switch 的意思,对吧?

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

这不是快乐的一天。这是悲伤的一天。

好的。那么我做错了什么?

4

3 回答 3

37

单击 svn 开关对话框中的“忽略祖先”复选框。

于 2015-09-24T13:41:49.543 回答
8

您可能会得到这个,因为您试图切换您的子文件夹之一,而不是做顶级文件夹。也就是说,您试图只切换文件夹中继/应用程序而不是中继。

于 2015-07-02T15:34:00.357 回答
3

您也许可以将已删除的分支切换到活动分支。对于 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

这将使您无需先进行结帐即可恢复分支。

于 2014-12-15T17:06:25.037 回答