2008-11-25 52 views
2

我正在评估Subversion的分支/合并功能,并且我决定做一个简单的测试 - 我分支一个现有项目,在一个文件中更改注释,然后通过Tortoise进行合并重新集成。Subversion合并问题:不能重新集成

它失败:

Command: Reintegrate merge https://oscar/svn/Baxtech/ViM/Branches/Test3 into C:\Inntec\VS2008\Baxtech\ViM
Error: Cannot reintegrate from ' https://oscar/svn/Baxtech/ViM/Branches/Test3 ' yet:
Error: Some revisions have been merged under it that have not been merged
Error: into the reintegration target; merge them first, then retry.

我用Google搜索周围这一点,我发现了一些帖子说,这与通过重命名和老版本的龟目录更改创建合并信息的事情。

我最近从旧版本的Tortoise升级到了1.5.5,不过看起来这个问题在1.5之前。* ... 而我只是在一个文件中改变了一些注释。我没有做任何重命名或目录结构的变化。

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

所以,如果有解决这个问题,我将不胜感激真的很感谢一些帮助。而且,虽然 - 这是典型的吗?这真的是一个简单的测试,现在我有点害怕使用Subversion进行分支。

颠覆:1.5.4(通过VisualSVN服务器)
龟:1.5.5

我们还使用Visual Studio 2008

谢谢!

Brian

回答

6

这也发生在我前段时间。

我不记得我究竟做了引发这一问题,但我可以说,我也是使用预先1.5版本,然后切换到1.5.0。

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

我的建议是尝试与没有提交从测试版即将新鲜的存储库,并查看是否再次出现这种情况。

1

我发现从命令行合并起来要容易得多。

svn merge -r N:M SOURCE [PATH] 

N是您所做的分支修订,M是要包括改变到修订版本(或头电流)。源是分支路径。如果您在目标工作目录中执行此操作,则不需要最后一个参数。

一个例子:

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

这将合并以后在分支到主干,从55的所有变化。

0

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

  • 你开始从你的主干工作副本合并(右键 - > SVN->合并)?
  • 如果你说测试合并会发生什么?
  • 检查无视血统的情况如何?
  • 确保您的合并深度是“工作副本”

BTW,什么版本SVN的是你的仓库?

+0

现在让我试试看 - Subversion是1.5.4 – 2008-11-25 20:35:42

+0

我在所有情况下都得到相同的错误信息。真奇怪的是,如果我进入分支并从主干合并回来,一堆文件会被修改。但是没有人触及到主干,并且这些文件在diff中没有显示任何更改! – 2008-11-25 20:42:26

0

我已经使用svn很长时间了,从来没有见过这种;授予我没有使用太多乌龟。有几点考虑:

  1. 日志显示你想合并成../ViM/branches/..../ViM/。你是否没有../ViM/trunk/或只是打印出有趣的日志?我想象一下,试图将一个分支合并到代码库之外的东西会让事情变得糟糕。

  2. 你创建分支之后,但重返它之前提交到主干什么变化?如果是这样,请确保在尝试将这些更改合并回干线之前将这些更改合并到分支中。在你的分支和主干

  3. 运行svn cleanup以确保任何未竟的事业有清理。

  4. 我不知道它会造成什么问题,但主干的工作副本可能需要更新,然后才能重新融入社会的变化。

+0

我没有运行清理。我没有改变主干,我做的唯一的事情就是分支中的评论改变。 日志是正确的,很好的眼睛。第一个路径是回购,第二个路径是我的本地工作副本。 – 2008-11-25 20:44:14

2

此问题与MergeInfo有关。我不太确定问题所在,但我认为我已清除了MergeInfo,现在一切正常。

我需要了解更多关于为什么我的MergeInfo出现问题以及它实际上做了什么。非常令人沮丧!

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

5

问题(往往不是)是当合并源有一些子树合并信息,SVN 1.5捞出发放特定错误消息。正如您已经正确指出的那样,补救措施是删除任何子树mergeinfo。一个详细的权威答案可以在这里找到:http://blogs.collab.net/subversion/2008/07/subversion-merg/