Linux 源码比对工具

源程序文件比较和合并一直是软件开发过程中比较重要的组成部分, Window IDE 大行其道, Linux传统命令行工具可能就寥寥无几。

Linux 传统比较工具常用 diff patch 组合 另一个可能就是vimdiff

vimdiff : 拥有简洁明了的界面,能对比较结果一目了然,对差异快速定位,容易进行文件合并
diff/patch:获取补丁文件,进行全部差异性更改


1. vimdiff

  1. 首先检查vimdiff是否可用, vimdiff 同时基于vim 与 diff命令 , vimdiff基础用法:

    vimdiff filename1 filename2

    此处执行vimdiff命令显示结果画面
    vimdiff filename1 filename2

  1. 光标移动 与 上下文展开查看

    移动光标,左右两侧屏幕滚动是同步的, 这是因为”scrollbind”选项被设置的结果,vim尽量保证两侧文件对齐.

    取消设置:
    set noscrollbind

    2.1 ctrl - w 来控制左右页面切换

    2.2 可以使用 h、j、k、l 控制上下左右

    2.3 提供快捷键在各个差异点之间快速移动,跳转:
    正向: ]c / 反向跳转: [c

    2.4 zo (floding open 用于打开折叠) zc(folding close 重新折叠)

    可以与第一张图比较差异:

  1. 文件合并

    1. 将当前文件差异复制到另外一个文件中:
      dp (diff “put”)

    2. 把另一个文件内容复制到当前文件中:
      do (diff “get”, dg已经被占用)

    3. 重新比较文件,来实时反应比较结果:
      diffupdate

    4. 撤销修改
      < ESC >, u

  2. 合并结束后,接下来的操作当前是保存。

    1. qa (quit all) 同时退出,且不保存
    2. wa (write all) 同时保存
    3. wqa(write,then quit all) 同时保存,并退出
    4. qa!(force to quit all) 强制退出,且不保存任何操作


2. diff/patch组合补丁

  1. diff

    个人比较常用:

    diff -ruN filename1 filename2

    输入如下:

    diff 对比

    filename2 比 filename1 变化了哪些。

  2. patch IBM patch解析

    1
    patch [option] [origfile]  [patchfile]
1
2
3

diff -ruN filename1 filename2 > patch.log #生成补丁信息文件
patch filename1 patch.log #利用patch文件打补丁
比较filename1 与 filename2 差别: 生成信息补丁 。对filename1 进行补全, 此时filename1 将与filename2 信息保持一致;
欣赏此文? 求鼓励,求支持!