【问题标题】:error reintegrating branch to trunk with Tortoise and SVN使用 Tortoise 和 SVN 将分支重新集成到主干时出错
【发布时间】:2012-05-10 19:34:35
【问题描述】:

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

错误:

当我尝试返回并合并已合并的修订时合并日志(这是来自分支的图片,试图合并来自主干的修订)

这是分支的修订日志:

这是来自主干的修订日志:

【问题讨论】:

  • 它显示的分支目录(并且您已涂黑)不是分支的根目录,而是一个子目录吗?
  • noo,我不知道它在做什么。缺少修订,但我知道它在那里,因为所有更改都存在(这是一个图标集更新,所以很容易分辨)。我实际上找到了一种解决方法,但 stackoverflow 不会让我回答。但可怕的是,当检查从主干合并的所有分支范围修订时,没有一个更新显示添加了新图标集......就像合并 r764 从未发生过一样,但我所有的图标都是正确的我的 WinForms(在分支中)。
  • 另一种可能性:您将合并合并到您的工作副本中 - 这就是您看到更改但没有提交的原因。

标签: svn tortoisesvn visualsvn


【解决方案1】:

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

(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 属性更改提交到您的分支。当您将此分支重新集成回主干时,您应该不再有任何错误。

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

【讨论】:

    猜你喜欢
    • 2010-11-25
    • 2016-08-10
    • 2012-03-30
    • 2012-04-27
    • 2011-01-23
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多