【问题标题】:vimdiff as a merge toolvimdiff 作为合并工具
【发布时间】:2009-12-27 18:08:14
【问题描述】:

vimdiff 有助于以图形方式显示两个文件的差异,并允许我们从左到右/从右到左选择更改。
我正在处理的文件是巨大的文件,vimdiff 报告的大多数差异都可以自动合并,除了少数几个。因为在 vimdiff 中逐个比较并采取行动需要很多时间。

我想知道 vimdiff 中是否有一个选项可以自动合并左右文件中的差异,只要没有歧义,并留下类似于工具 svn merge 和 cvs merge 工具的冲突解决方案吗?

【问题讨论】:

    标签: merge diff vim vimdiff


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      如果你不使用版本控制,你可以尝试这种方式进行差异和补丁:

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

      更改将被合并,冲突的行将被放置在一个单独的文件中。

      【讨论】:

      • 这看起来不错。这种方法的任何缺点。
      • 效果很好,感谢那些我刚刚学到的东西!
      【解决方案3】:

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

      但是你可以看看Kdiff3,它可以让你比较和合并。

      【讨论】:

        猜你喜欢
        • 2018-06-20
        • 1970-01-01
        • 2012-09-23
        • 2020-05-17
        • 2011-01-05
        • 2020-03-31
        • 2010-09-18
        • 1970-01-01
        • 2010-12-21
        相关资源
        最近更新 更多