【问题标题】:Resolving SVN merge postponed conflicts recursively递归解决SVN合并延迟冲突
【发布时间】:2010-09-24 15:08:51
【问题描述】:

我有一个开发分支,有一段时间没有动过。我将主干合并到其中以集成主线中的许多修复/更改,因为它被分支出来了,但现在我有很多小冲突(合并左/合并右)。

我希望使用最新的主干修订版来解决每个冲突。有没有我可以运行的命令可以自动解决一个工作副本下的所有冲突在一个方向上(merge-right 应该用于所有冲突)?

编辑: 如 cmets 所示,我尝试使用 --accept 选项还原然后运行 ​​svn merge,但显然 SVN 1.0 中没有这样的选项。仍在寻找解决方案。

【问题讨论】:

  • 你不能为合并安装 svn 1.5 吗?你甚至可以在其他机器上做。

标签: svn merge conflict


【解决方案1】:
svn --version
svn, version 1.6.17 (r1128011)

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

【讨论】:

    【解决方案2】:

    好的,我有一个计划,我认为它可以解释我的大部分问题 - (从我发给 users@subversion 的帖子中收集...)

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

    • cherry pick 合并 + 在根以下级别合并(都允许,但它们会使以后的合并更加复杂)
    • 我们假设合并命令完成意味着所有更改都合并(没有仔细检查 mergeinfo --show-revs 合格)
    • 早期客户端(1.5 或早期 1.6)可能存在的错误。我们有许多 ubuntu 和 debian 系统,最初并不知道 wandisco 的更新站点。因此,我们错过了保持最新状态的简单方法。我们现在正在快速部署 1.6.11

    推送过程:

    1. svn merge --reintegrate --accept 推迟 URL-branch path-to-workspace
    2. svn mergeinfo URL-branch path-to-workspace --show-revs 合格 > 合格_revs.txt
    3. 重复直到没有任何符合条件的东西

    拉取过程: 相同的模式,但减去 --reintegrate

    【讨论】:

      【解决方案3】:

      就像 abigagly 说的,你应该在合并时使用--accept theirs-full。如果您已经完成合并并想重新开始,您可以先使用svn revert -R 重新开始。

      --accept 选项是 SVN 1.5 中的新选项,以及交互式合并支持。

      【讨论】:

      • 这是 SVN 1.5 中的一个新选项。
      【解决方案4】:

      如果您执行“检查修改”,我认为 TSVN 可以做到这一点,这将显示所有文件,包括冲突的文件,选择所有文件,然后选择“使用他们的解决”。

      不确定 TSVN 是否与您的平台相关,或者这实际上正是您想要做的,但它可能会有所帮助...

      【讨论】:

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

      我认为您可以在发出 svn merge 命令时使用“--accept theirs-full”选项。 那应该做你想做的......

      【讨论】:

      • 我正在寻找一种可以应用于合并后操作的解决方案
      • 哎呀...对不起,我不明白...我认为最简单的方法是在合并产生冲突后在本地副本上恢复 svn
      • 是的,在 svn 1.5 中:subversion.tigris.org/…
      • 抱歉,我使用的是 1.0 版,所以这对我没有帮助
      猜你喜欢
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 2012-03-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      • 2019-08-26
      相关资源
      最近更新 更多