树冲突破坏了svn合并功能。

30

我不知道svn团队何时决定强加给我们树状冲突,但它已经完全破坏了svn的合并功能。

我有一个分支,想将主干的最新更改合并到该分支中。我已经完成了一次这样的合并,但由于出现了树状冲突,此次合并失败了。以下是命令:

$ svn --force merge -r 3185:3192 svn://chamar2/rx-services/SAMS .
svn: Attempt to add tree conflict that already exists
第一次尝试此合并(不使用--force),它只创建了树冲突,没有合并任何东西。现在它只报告上面的消息。
如果我在分支工作副本上执行svn status,它会显示所有具有更改的文件,这些文件尚未合并回主干。当然,我的分支的目的是在还未在主干中实施这些更改的地方进行这些更改。
他们在做这个时,想到了什么?
我没有找到有用的信息来说明是什么导致了树冲突以及我如何继续工作,因为svn已经创建了这些东西。
是否有一种方法可以告诉svn忘记树冲突,只像过去那样进行合并?
我正在使用1.6客户端和较旧的svn服务器(可能是1.3.1)。

2
SVN没有将树冲突作为一项功能添加进去,它们是版本控制本质上固有的。现在,你可以指出SVN在处理和/或消息传递方面做得不好,但至少它能够检测到它们并尝试让你知道发生了什么。 - Tim Keating
4个回答

15
问题其实是我选择了父目录作为合并源而不是父目录/主干目录。这是用户错误,但树冲突消息很令人困惑。如果 svn 继续合并,我会立即看到这个问题。
树冲突引入了新的消息语义,需要一些时间来适应。
感谢指向 Tortoise 树冲突文档。这是我见过的唯一解决分支工作的文档。然而,给出的示例并没有解释为什么我在分支上修改的文件会发生树冲突。树冲突消息需要一些时间来适应。
在大多数情况下,似乎只需标记解决树冲突,在这些情况下,树冲突只是噪音。
Mark Phippard 表示旧服务器版本不会引起树冲突。如果你想要合并跟踪支持并且你的服务器低于 1.5 版本,则只需要更新服务器。显然,合并跟踪是旧 svn 服务器缺少的唯一功能。
http://eclipse.open.collab.net/ds/viewMessage.do?dsForumId=62&dsMessageId=332448

2
目录冲突:将目录视为一个文本文件,其中每个子目录都是一行。现在,从该文件中添加和删除行并进行合并 - 您将遇到冲突。这正是树冲突发生的情况,只是合并编辑器不存在(显然答案是将目录复制到正确的位置并标记为已解决)。 - gbjbaanb

11

svn:尝试添加已存在的树冲突

Subversion出现问题是因为在你进行了一个合并操作后,生成了一个冲突,然后你又重复执行了同样的合并操作。SVN尝试添加冲突但注意到之前的合并操作已经创建了这个冲突。因此,它会正确输出警告。

如果你执行了合并操作但结果不如意,那么在尝试其他操作之前,你应该先还原本地更改

至于原始的树冲突:要理解为什么行为与旧客户端不同以及如何解决这些冲突,你必须阅读svn书中关于树冲突的章节。TortoiseSVN手册也有一篇较好的关于树冲突的主题


4
我刚进行了一次全新的合并,却遇到了“尝试添加已存在的树冲突”错误提示。紧接着又出现了“读取虚拟 REPORT 请求响应时发生错误”的报错信息。 - PEELY
3
我在进行全新合并时遇到了这个错误,之前没有进行过任何合并。我认为这是由于同一个合并中有两个树冲突引起的问题。 - darreljnz

2
我猜测您正在观察1.6客户端和1.3服务器之间的不良交互。树冲突检测是1.6的新功能。此外,合并支持在1.5上有所改变(比以前更易用)。
我建议尝试升级服务器和存储库格式到1.6。另一个尝试的方法是使用1.5(无树冲突)或1.4(也没有新合并)客户端。
再次强调,这只是一个猜测,可能并不真正有用...

我曾考虑将客户端降级回到1.5版本,但是 SVN 有一个讨厌的习惯,每次发布新版本都会更改工作副本格式,我的1.6工作副本无法在1.5客户端中使用。我可能需要将客户端降级并进行新的检出。 - Dean Schulze

0

大家好,我遇到了完全相同的问题,当我尝试进行svn合并时出现了树冲突。结果发现Laurynas是绝对正确的。这是因为svn仓库是旧版本造成的。在服务器上,我进入目录{repopath}\db\format,在格式文件中它包含“2”。

我所做的就是执行

svnadmin upgrade {repopath}

这非常容易。

在我做了那件事之后,当我尝试使用合并跟踪时,就没有再遇到树冲突了!感谢这个提示!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接