我有三个版本的文件:原始版本,我的更改以及其他人的更改。我想进行三向合并以生成包含两组更改的版本(如果不可能则会失败)。请注意,我不询问任何修订控制系统,例如svn或git。我想编写一个最小的命令行工具,它将三个文件作为输入,并将合并写入标准输出。
使用Unix diff和patch工具,一种方法如下。假设这三个文件名为orig,my,other:
%diff -u来自我的|补丁-o - 其他
或反过来做,
%diff -u orig其他|补丁-o - 我的
但事实上有两种方法来进行差异和合并是一种代码味道。当然,将所有三个文件作为输入的合并工具可以做得更好。
显然我可以初始化一个空的svn存储库,检入orig,检查我和其他在不同的分支中,然后进行合并。或者在另一个版本控制系统中的等效操作。但这似乎是重量级和笨重的,创建一个将立即丢弃的存储库。
是否有一个合理的三向合并工具,它可以从命令行独立运行?
答案 0 :(得分:0)
正如twalberg在评论中所说,merge
是我正在寻找的工具。