vimdiff作为合并工具

时间:2009-12-27 18:08:15

标签: merge diff vim vimdiff

vimdiff有助于以图形方式显示两个文件的差异,并允许我们从左到右/从右到左选择更改。
我正在处理的文件是大文件,大多数差异vimdiff报告可以自动合并,除了少数。由于需要花费大量时间在vimdiff中通过diff进行差异并采取行动。

我想知道vimdiff中是否有一个选项可以自动注释左右文件中的差异,只要没有歧义并且让冲突的解决方案类似于工具svn merge和cvs merge工具呢? / p>

3 个答案:

答案 0 :(得分:4)

无法自动合并两个文件中的更改,除非我们有一个基本副本,其中这两个文件分支并单独更改。如果项目在一侧而不在另一侧,则无法判断此项目是新添加的还是已删除现有项目。由于在存储库中合并文件时存在基本副本,cvs merge,svn merge可以自动合并更改。

答案 1 :(得分:3)

如果您不使用版本控制,您可以尝试使用diff和patch:

  1. 在更改文件(例如file.txt)之前,请备份原始版本(file.orig)。
  2. 进行更改后,请制作补丁文件:diff file.orig file.txt >patch.txt
  3. 获取要将更改合并到的文件(例如,file2.txt)。
  4. 使用补丁:patch file2.txt patch.txt
  5. 将合并更改,冲突的行将被放置在单独的文件中。

答案 2 :(得分:0)

看起来vimdiff不允许这样做。手册页说 “vimdiff - 使用Vim编辑文件的两个或三个版本并显示差异”

但您可以查看Kdiff3,以便进行比较和合并。