Subversion Merge问题:无法重新集成

时间:2008-11-25 17:15:19

标签: svn tortoisesvn visualsvn

我正在评估subversion的分支/合并功能,我决定做一个简单的测试 - 我分支现有项目,在一个文件中更改注释,然后通过Tortoise重新整合。

失败了:

  

命令:将合并https://oscar/svn/Baxtech/ViM/Branches/Test3重新整合到C:\ Inntec \ VS2008 \ Baxtech \ ViM中   错误:无法从“https://oscar/svn/Baxtech/ViM/Branches/Test3”重新集成:
  错误:在其下合并了一些尚未合并的修订版本   错误:进入重新整合目标;首先合并它们,然后重试。

我搜索了这个,我发现一些帖子说这与在旧版本的Tortoise中重命名和目录更改创建的mergeinfo有关。

我最近从之前版本的Tortoise升级到1.5.5,但似乎这个问题是1.5之前的版本。* ... 我只在一个文件中更改了一些注释。我没有进行任何重命名或目录结构更改。

然后,我们一直在使用主干一段时间(没有任何分支),所以可能存在问题吗?

所以,如果有一个修复,我将非常感谢一些帮助。而且,这是典型的吗?这真是一个非常简单的测试,遗憾的是现在我有点害怕使用Subversion进行分支。

Subversion:1.5.4(通过VisualSVN Server)
乌龟:1.5.5

我们也在使用Visual Studio 2008。

谢谢!

布赖恩

6 个答案:

答案 0 :(得分:6)

这也发生在我不久前。

我不记得我究竟做了什么来触发这个问题,但我可以说我还在使用1.5之前版本,然后切换到1.5.0。

Subversion使用每个目录的svn:mergeinfo属性跟踪合并。此属性应仅出现在工作副本的根路径上(如果我错了,请纠正我)。 当我看到这个错误时,我注意到1.5之前的版本在工作副本内的文件上创建了显式的mergeinfo,这阻止了稳定版本正常工作。正如您在last reply中所说的,删除那些额外的mergeinfo条目也为我解决了问题。

我的建议是尝试使用新版本的存储库,不会发布测试版的提交,看看是否会再次发生这种情况。

答案 1 :(得分:5)

问题(更常见的情况)是当合并源有一些子树合并信息时,svn 1.5会发出特定的错误消息。您正确指出的解决方法是删除任何子树mergeinfo。详细的权威答案可以在http://blogs.collab.net/subversion/2008/07/subversion-merg/

找到

答案 2 :(得分:2)

此问题与MergeInfo有关。我不太确定问题是什么,但我想我清除了MergeInfo,现在一切都很好。

我需要更多地了解为什么我的MergeInfo有问题以及它实际上有什么问题。很沮丧!

编辑:自从我们现在升级以来已经过了一段时间,我没有再遇到过这个问题。

答案 3 :(得分:1)

我发现从命令行合并更容易。

svn merge -r N:M SOURCE [PATH]

N是您对分支进行的修订,M是您希望包含更改的修订(或当前的HEAD)。 Source是分支路径。如果在目标工作目录中执行此操作,则不需要最后一个参数。

一个例子:

//sitting in main trunk
svn merge -r 55:HEAD svn://my.repo.url/branches/my_branch

这会将分支中从55开始的所有更改合并到主干。

答案 4 :(得分:0)

想不出任何原因,我从未见过这个错误,而且我使用分支/合并很多。我会检查几件事:

  • 您从主干工作副本开始合并(右键单击 - > SVN->合并)?
  • 如果您说测试合并会怎样?
  • 检查忽略祖先怎么样?
  • 确保您的合并深度为“工作副本”
BTW,您的存储库是什么版本的SVN?

答案 5 :(得分:0)

我已经使用了很长时间的svn并且从未见过这个;我没有那么多使用过Tortoise。需要考虑几点:

  1. 日志显示您尝试将../ViM/branches/..合并到../ViM/。你没有../ViM/trunk/或者日志只是打印出有趣的东西吗?我想,试图将一个分支合并到代码库以外的东西会让事情变得混乱。

  2. 在创建分支之后但在重新集成之前,您是否对trunk进行了任何更改?如果是这样,请确保在尝试将这些更改合并回主干之前将这些更改合并到分支中。

  3. 在您的分支机构和主干上运行svn cleanup,以确保清理任何尚未完成的业务。

  4. 我不确定这会导致任何问题,但您可能需要更新您的干线工作副本才能重新整合更改。