使用 WinMerge 作为 difftool 时如何忽略“代码样式”更改?特别是跨越两次提交。
以便
thing
{
a,
b
}
Run Code Online (Sandbox Code Playgroud)
和
thing { a, b }
Run Code Online (Sandbox Code Playgroud)
将被视为相同。
本质上是这个问题,但针对的是 winmerge 而不是 diff。
.gitconfig:
[diff]
tool = winmerge
[difftool]
prompt = false
[difftool "winmerge"]
cmd = "$HOME/scripts/winmerge.sh" "$LOCAL" "$REMOTE"
[mergetool]
prompt = false
keepBackup = false
keepTemporaries = false
[merge]
tool = winmerge
[mergetool "winmerge"]
cmd = "'C:/Program Files (x86)/WinMerge/WinMergeU.exe'" -e -u -fm -dl \"Local\" -dr \"Remote\" "$LOCAL" "$MERGED" "$REMOTE"
Run Code Online (Sandbox Code Playgroud)
(winmerge.sh只是打电话WinMergeU.exe -e -u -wr "$1" "$2")
似乎没有一个命令行选项适合,而且我认为行过滤器不起作用,因为它们是每行的。
Cha*_*lie 19
这个选项对我有用:
WinMerge -> 编辑 -> 选项 -> 比较 -> 常规:忽略空行;忽略回车符差异 (Windows/Unix/Mac)
ETC。
答案取自https://superuser.com/questions/174275/can-i-compare-only-file-contents
为了有更多时间回答我自己的问题:
difftastic以速度和内存为代价来实现只读差异忽略空行;忽略回车符差异 (Windows/Unix/Mac)
这会忽略换行差异和完整空行差异,但不会在语义上比较文件。它在某些简单的情况下确实有帮助。
线路滤波器
^\s*$
与“忽略空行”相同
.gitattributestextconv用于特定文件类型的格式化程序
这是只读差异的最接近的选项,其缺点是:
difftastic速度慢或占用内存时,回退到diff/WinMerge/VSCode