递归解决 SVN 合并延迟的冲突

4
我有一个开发分支已经有一段时间没有动了。我将主干合并到其中,以整合自从分支后主线上的许多修复/更改,但现在我有许多小冲突(合并左侧/合并右侧)。
我希望使用最新的主干版本来解决每个冲突。是否有一个命令可以在一个工作副本中自动解决所有冲突(对于所有冲突都应该使用合并右侧)?
编辑: 如评论中所示,我尝试回滚然后运行svn合并与--accept选项,只是显然在SVN 1.0中没有这样的选项。仍在寻找解决方案。

1
你难道不能只为了合并安装SVN 1.5吗?你甚至可以在其他机器上完成这个任务。 - orip
5个回答

7

我认为您可以在执行svn合并命令时使用"--accept theirs-full"选项。这样应该可以实现您想要的效果...


我正在寻找一种可以在合并操作后应用的解决方案。 - Eran Galperin
抱歉,我没听懂... 我认为最简单的方法是在合并产生冲突后,在本地副本上进行 svn 撤销。 - abigagli
1
有的,在svn 1.5中:http://subversion.tigris.org/svn_1.5_releasenotes.html#interactive-conflict-resolution - orip
抱歉,我正在使用1.0版本,所以这对我没有帮助。 - Eran Galperin

3

就像abigagly所说,当执行合并操作时,您应该使用--accept theirs-full。如果您已经执行了合并操作并想重新开始,请首先使用svn revert -R重新开始。

--accept选项是SVN 1.5中的新功能,与交互式合并支持一起提供。


1
这是 SVN 1.5 中的一个新选项。 - Avi

3
svn --version
svn, version 1.6.17 (r1128011)

svn resolve -R --accept='theirs-full' <path>

0

好的,我有一个计划,我认为它解释了我大部分的困扰 - (从我的帖子到users@subversion...中收集而来)

我认为我们遇到了以下问题,使事情变得更糟:

  • 挑选樱桃合并+在根目录下合并(所有这些都是允许的,但它们可能会使后续合并更加复杂)
  • 我们假设合并命令完成意味着所有更改都已合并(没有使用mergeinfo --show-revs eligible进行双重检查)
  • 早期客户端可能存在错误(1.5或早期1.6)。我们有许多ubuntu和debian系统,最初不知道wandisco的更新站点。因此,我们错过了保持当前的简单方法。我们现在正在快速部署1.6.11

PUSH流程:

  1. svn merge --reintegrate --accept postpone URL-branch path-to-workspace
  2. svn mergeinfo URL-branch path-to-workspace --show-revs eligible > eligible_revs.txt
  3. 重复直到没有符合条件的内容

PULL流程: 相同的模式,但减去--reintegrate


0

如果你进行“检查修改”,TSVN可以完成这个任务,它将显示所有文件(包括冲突的文件),选择它们然后选择“使用其它版本解决冲突”。

不确定TSVN是否适用于你的平台,或者是否正好是你想要做的事情,但它可能会有所帮助...


是的,我目前正在做这件事,但需要一段时间才能完成(大约100Mb的存储库)。我希望有一个命令行解决方案,可以在服务器上运行,并供将来参考。 - Eran Galperin

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