0

我试图将一个分支重新集成到主干中,它一直告诉我分支中缺少主干中的修订,但是当我尝试将修订合并到分支时,它显示不需要合并。我在 vs2010 中使用 VisualSVN,但即使直接进入源文件夹并使用 Tortoise,我也会遇到同样的错误。

错误: 在此处输入图像描述

当我尝试返回并合并已经合并的修订时合并日志(这是来自分支的图片,试图从主干合并修订) 在此处输入图像描述

这是分支的修订日志: 在此处输入图像描述

这是来自主干的修订日志: 在此处输入图像描述

4

1 回答 1

0

我有两种方法解决了这个问题:

(1) 在您的主干中,对有问题的文件进行空白更改并将其提交到主干。然后将此更改合并到您的分支中。这应该强制该文件的分支上的 mergeInfo 属性将其结束范围更新为最新版本。

这仅在相关文件的 MergeInfo 中没有间隙时才有效:

/trunk/[path to file on HD]:750-763.

从主干获取更新后,这将强制合并信息看起来像这样:

/trunk/[path to file on HD]:750-791.

如果有间隙,它将不起作用:

/trunk/[path to file on HD]:750-755, 766-788.

它只会更新最后一个范围,从 766-788 到 766-791,仍然跳过有问题的修订。在这种情况下,您必须执行选项 2。

(2) 如果您 100% 确定缺少的修订确实在您的分支中,并且有问题的文件在主干和分支中是相同的,我只会建议这样做。否则,这可能会导致在将分支重新集成回主干时丢失更改。

在您的分支的本地副本中,导航到有问题的文件夹/文件,右键单击,在 tortoise svn 菜单中选择属性。突出显示“svn:mergeinfo”属性并单击“编辑”。

由于您知道更改已经在您的分支中,因此请更改主干中合并修订的范围以强制它包含缺少的修订:

/trunk/[path to file on HD]:750-755, 764, 766-788.

将此 mergeinfo 属性更改提交到您的分支。当您将此分支重新集成回主干时,您应该不再有任何错误。

如果您的主干和分支之间的文件发生更改,您将不得不在提交时将差异添加到您的分支,这样您就不会在重新集成您的分支时将它们从主干中删除。

于 2012-05-24T16:08:27.590 回答