【问题标题】:3-way merge (update) file based on differences in 2 branches基于 2 个分支差异的 3 路合并(更新)文件
【发布时间】:2014-03-29 17:29:20
【问题描述】:

我有 3 个文本文件:

  1. 分支 A,版本 i (Ai)
  2. 分支 A,版本 i-1 (Ai-1)
  3. B 分支,版本 i-1 (Bi-1)

是否有任何合并/差异工具来生成具有以下规则的分支 B,版本 i (Bi):

  1. 如果 Ai=Ai-1,则在 Bi 中使用 Bi-1
  2. 如果 AiAi-1=Bi-1,则在 Bi 中使用 Ai
  3. 如果 AiAi-1Bi-1,则冲突

我尝试了 SourceGear Vault 中的 DiffMerge,但找不到这样的自动化选项。

这篇 wiki 文章也没有帮助:

en.wikipedia.org/wiki/Merge_(revision_control)

【问题讨论】:

    标签: version-control merge branch diff diffmerge


    【解决方案1】:

    我们的工具 ECMerge 应该这样做(使用 Ai-1 作为祖先,使用 Ai 作为左,Bi-1 作为右,并将 Bi 指定为“结果位置”)。您可以在文件或文件夹级别执行此操作。 如果您不想尝试在文件内合并,并在任何 AiAi-1Bi 的情况下直接报告冲突,请使用文本比较/文件合并/环绕更改:全部。

    一些没有“生产”功能的工具也可以这样做,首先将 Bi-1 版本复制到 Bi,然后在 Ai/Bi 上以 Ai-1 作为祖先进行 3 路合并。

    【讨论】:

    • 是否可以将其作为脚本运行?
    • 大多数工具都会从命令行执行,对于 ECMerge,它类似于:ecmerge.exe --sip Ai-1 Ai Bi-1 --to=Bi--sip 代表 Silent If Possible,如果没有合并冲突,它将静默运行,返回 0在这种情况下,如果存在冲突则生成图形 UI,如果全部修复则返回 0,如果未修复某些冲突则返回 1)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 2011-04-07
    • 1970-01-01
    • 2011-05-06
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多