2

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

它失败了:

命令:将https://oscar/svn/Baxtech/ViM/Branches/Test3重新集成到 C:\Inntec\VS2008\Baxtech\ViM
错误:无法从“ https://oscar/svn/Baxtech/ViM/Branches/ 重新集成” Test3 ' yet:
Error: 一些没有被合并的修订已经被合并到它下面
Error: into the reintegration target; 先合并它们,然后重试。

我用谷歌搜索了这个,我发现一些帖子说这与旧版本的 Tortoise 中的重命名和目录更改创建的合并信息有关。

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

再说一次,我们一直在使用主干一段时间(没有任何分支),所以问题可能存在于那里?

因此,如果有解决此问题的方法,我将非常感谢您的帮助。另外,虽然 - 这是典型的吗?这真的是一个非常简单的测试,遗憾的是现在我有点害怕使用 Subversion 进行分支。

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

我们还使用 Visual Studio 2008。

谢谢!

布赖恩

4

6 回答 6

6

这也发生在我前一段时间。

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

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

我的建议是尝试使用没有来自 beta 版本的提交的新存储库,看看是否会再次发生这种情况。

于 2008-11-25T22:13:27.630 回答
5

问题(通常情况下)是当合并源有一些子树合并信息时,svn 1.5 会发出特定的错误消息。正如您正确指出的那样,对此的补救措施是删除任何子树合并信息。详细的权威答案见:http: //blogs.collab.net/subversion/2008/07/subversion-merg/

于 2008-12-11T08:24:14.117 回答
2

这个问题与 MergeInfo 有关。我不太确定问题出在哪里,但我想我清除了 MergeInfo,现在一切都很好。

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

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

于 2008-11-25T21:04:59.237 回答
1

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

svn merge -r N:M SOURCE [PATH]

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

一个例子:

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

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

于 2008-11-25T17:19:12.203 回答
0

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

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

顺便说一句,您的存储库是什么版本的 SVN?

于 2008-11-25T18:57:08.027 回答
0

我用svn很久了,从来没有见过这个;授予我没有使用乌龟那么多。需要考虑的几点:

  1. 日志显示您尝试合并../ViM/branches/..../ViM/. 你没有../ViM/trunk/或者日志只是打印出有趣的东西?我想尝试将分支合并到代码库以外的东西会搞砸。

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

  3. 在您的分支和主干上运行svn cleanup,以确保清理所有未完成的业务。

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

于 2008-11-25T20:34:47.893 回答