在终端环境下,两个文件要进行差异比对,通常我们会使用系统内建的diff命令,效果如下:
diff命令仅仅是将文件差异处以上下对照呈现,并不会以颜色标示差异处。
再看看icdiff比较文件的结果,效果如下:
其中各种颜色代表的意义如下: [绿色]表示[新增] [红色]表示[删除] icdiff将文件差异处以左右对照呈现的方式,并且将差异处标记上颜色。看上去直观多了。目前最新版本为icdiff 1.9.1。
icdiff下载地址
安装方法 1.MAC OS X平台 $ brew icdiff 2.Linux平台 $ pip install icdiff Ubuntu ≥ 17.10、Debian ≥ 9版本安装方法 sudo apt-get install icdiff
使用方法 1.如何比较两个文件差异 $ icdiff <file_1> <file_2> 2.如何搭配git使用 $ git difftool --extcmd icdiff 3.更精简的git用法 $ git icdiff 4.将icdiff设定为git预设比对差异工具 我们可以设定git预设使用icdiff来做差异比对,只需要设定git difftool path指向git-icdiff即可。 设定方法如下 运行:$ vim ~/.gitconfig [diff] #使用icdiff来取代git内建的diff external = ~/bin/git-diff-wrapper.sh 建立~/bin/git-diff-wrapper.sh文件,加入以下内容 运行:$ vim ~/bin/git-diff-wrapper.sh #!/bin/bash icdiff $2 $5 给脚本加上执行权限 $ chmod +x ~/bin/git-diff-wrapper.sh 赶紧使用$ git diff试试吧,是不是已经默认使用icdiff做比较了! 如果你想要忽略这个外部diff而使用官方的diff效果的话 $ git diff --no-ext-diff 5.如何搭配svn使用 $ svn diff --diff-cmd icdiff 6.如何让svn预设使用icdiff 设定方法如下 编辑~/.subversion/config文件 $ vim ~/.subversion/config 将# diff-cmd = diff_program的注释行修改成diff-cmd = icdiff 保存退出,之后执行svn diff命令的时候,就可以彩色化的显示版本差异了,其实这样配置,相当于在执行svn diff的时候多加了一个参数svn diff --diff-cmd = colordiff
常见错误 使用svn diff --diff-cmd icdiff可能出现以下类似错误: Sorry I don't know python, I can just report the error : (used from svn) Traceback (most recent call last): File "/bin/icdiff", line 561, in <module> start() File "/bin/icdiff", line 476, in start diff_files(options, a, b, options.encoding) File "/bin/icdiff", line 556, in diff_files codec_print(line, options) File "/bin/icdiff", line 483, in codec_print sys.stdout.write(s.encode(options.output_encoding)) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 32: ordinal not in range(128) 解决:根据作者的解决方案,需改用python3。 Setting python=python3 in your bashrc won’t make icdiff use python3. The easiest way to do that would be to change #!/usr/bin/env python to #!/usr/bin/env python3 at the top of icdiff.
相关主题 |