Version control 基于两个分支中的差异的三向合并(更新)文件

Version control 基于两个分支中的差异的三向合并(更新)文件,version-control,merge,branch,diff,diffmerge,Version Control,Merge,Branch,Diff,Diffmerge,我有3个文本文件: 分支机构A,第一版(Ai) 分支机构A,版本i-1(Ai-1) 分支机构B,版本i-1(Bi-1) 是否有任何合并/差异工具来生成具有以下规则的分支B,版本i(Bi): 如果Ai=Ai-1,则在Bi中使用Bi-1 如果AiAi-1=Bi-1,则在Bi中使用Ai 如果是AiAi-1Bi-1,则冲突 我从SourceGear Vault尝试了DiffMerge,但找不到这样的自动选项 这篇维基文章也没有帮助: en.wikipedia.org/wiki/Merge(修订版控制)我

我有3个文本文件:

  • 分支机构A,第一版(Ai)
  • 分支机构A,版本i-1(Ai-1)
  • 分支机构B,版本i-1(Bi-1)
  • 是否有任何合并/差异工具来生成具有以下规则的分支B,版本i(Bi):

  • 如果Ai=Ai-1,则在Bi中使用Bi-1
  • 如果AiAi-1=Bi-1,则在Bi中使用Ai
  • 如果是AiAi-1Bi-1,则冲突
  • 我从SourceGear Vault尝试了DiffMerge,但找不到这样的自动选项

    这篇维基文章也没有帮助:


    en.wikipedia.org/wiki/Merge(修订版控制)

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


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

    是否可以将其作为脚本运行?大多数工具都会从命令行执行,对于ECMerge,它类似于:
    ECMerge.exe--sip Ai-1 Ai-1--to=Bi
    --sip
    表示静默(如果可能的话),如果没有合并冲突,它将以静默方式运行,在本例中返回0,如果存在冲突,则生成图形用户界面;如果修复了所有冲突,则返回0;如果未修复某些冲突,则返回1)