我比较喜欢使用免费的 WinMerge 作为diff和merge工具,虽然TortoiseGit也自己带了TortoiseGitMerge工具,但是使用起来总觉得不是那么方便。
虽然WinMerge项目看起来没人维护了,最后一个发布打分版本在2013-02-02,但是这个工具使用起来还是相当方便的。我在重装机器的时候,或者更新Windows的时候,如果需要配置TortoiseGit,总是需要到网上查找如何配置WinMerge,因为长长的命令参数总是记不起来。所以在本文中记录下来。
如果使用WinMerge作为diff工具,需要在TortoiseGit的设置(Setting)对话框中选择Diff Viewer:
选择外部工具"External",在输入框中输入:
C:/Program Files (x86)/WinMerge/WinMergeU.exe /s /e/x /ul/ur /wl/dl %bname /dr %yname %base %mine
如果你已经把 C:/Program Files (x86)/WinMerge
加入到环境变量Path中了,你可以简写成:
WinMergeU /s /e/x /ul/ur /wl/dl %bname /dr %yname %base %mine
/s
限制WinMerge窗口为单个实例,避免出现多个窗口。
/e
允许使用 ESC
作为退出键。
/x
如果文件没有变动则关闭WinMerge窗口。
/ul
和 /ur
不把左右窗口的文件加入到Most Recently Used (MRU)列表。
/wl
左边窗口的文件设为只读,这样我们只可以修改右边的文件。
/dl
为左边的文件指定描述符。
/dr
为右边的文件指定描述符。
%base
为左边窗口打开的文件。
%mine
为右边窗口打开的文件。
在TortoiseGit的设置(Setting)对话框中选择Merge Tool:
C:/ProgramFiles (x86)/WinMerge/WinMergeU.exe%theirs %mine %merged
如果你已经把 C:/Program Files (x86)/WinMerge
加入到环境变量Path中了,你可以简写成:
WinMergeU %theirs%mine%merged