我经常使用gnu-utils补丁和差异.使用git,我经常这样做:
git diff
Run Code Online (Sandbox Code Playgroud)
通常简单的更改会创建一个大的补丁,因为唯一改变的是,例如,添加一个if/else循环,内部的所有内容都缩进到右边.
查看这样的补丁可能很麻烦,因为只有逐行手动比较才能指示缩进代码中是否有任何实质性更改.我们可能只谈论几行代码,或者几十个(或更多)嵌套代码.(我知道:这样一个假想的大函数最好分成更小的函数,但这不是重点).
当代码块中的唯一更改是缩进并让开发人员知道多少时,GNU diff/patch是否能够注意到?
有没有其他差异工具以这种方式运作?
编辑:好的,--ignore-space-change但是我们处于这样一种情况:或者我们有一个人类更可读的补丁,或者我们有一个完整的补丁,机器会知道如何阅读.难道我们不能拥有更好的两个世界中更好的差异工具,它可以显示人类空间的变化,同时允许机器完全应用补丁吗?
ric*_*chq 17
使用GNU diff,您可以传递-b或--ignore-space-change忽略修补程序中空白区域的更改.
如果您使用emacs并且已经发送了补丁,您还可以使用M-x diff-ignore-whitespace-hunk重新格式化补丁来忽略特定块中的空白区域.或者diff-refine-hunk突出显示角色的角色变化,这往往指出变化的"肉".
至于应用补丁,您可以使用-l或--ignore-whitespace使用GNU补丁来忽略选项卡和空格的更改.小心Python代码:-)