Does anyone have a favorite diff tool for reviewing lots of code? I’m thinking something along the lines like meld or vimdiff. I don’t really need a git client. I’m comfortable with the git CLI. I’m mainly interested in making code reviews a little easier to manage.
I’m reviewing a large code change right now and the web interface sucks. It’s slow. It doesn’t load all the files at once. Cross referencing files sucks.
I know, I know. “Code changes should be small.” I’ve already voiced that to my team, yet here we are. I’m trying to figure out a way to make this a little less miserable.
The tortoise diff tool when doing most stuff.
Winmerge if I am manually comparing directories (it can do images/pdfs too!)
I use GitLab diffs in single-file-view mode, TortoiseGit Merge when it exceeds what GitLab can reasonably display (including block indent changes I can ignore in TortoiseGit Merge or moves I can better track), and WinMerge (previously I used KDiff) for manual copy-paste text diffing (like copying blocks from the code change diff to compare similar, categorically similar code, or code moves, etc)
My favourite is Meld
p4merge
Difftastic is a structural diff tool that compares files based on their syntax.
Probably won’t solve all of your problems, but I like to at least change git’s default pager to
delta.Beyond Compare, the pro version that does 3-way merges and stuff. I tried them all and its the best for a cheap price if you use it a lot.
Seconding beyond compare. It’s been the best by far and also supports network copy
My current workplace only allows whitelisted applications to run, and you must install them via the company portal. At my old workplace I used Linux with Kde Plasma, and Meld. New workplace has windows 11 only, and I was trying to find a replacement for Meld. When I started here, I noticed Beyond Compare is on the list. I’d heard of it before, but never used it. I installed it and it’s great! So happy that’s the one diffing tool they allow.
Kdiff3
Not a diff, but a merge tool.
I use https://difftastic.wilfred.me.uk/ which is well, fantastic. I have it set up as the default diff for Git and it is really nice.
Difftastic is fantastic!
I use emacs’s magit for git stuff (the bulk of things) and emacs’s ediff for most other things.
Good if you know emacs, but hard to recommend using it for someone who doesn’t.
EDIT: Oh, one exotic utility that’s useful for some rare cases, not really for interactive merging of code — wdiff for word-level diffing. Most code can reasonably be diffed on a line-by-line basis, but that’s not true for some text formats, which can have very long lines. Human, natural language in text format, is one good example.
For comparing and selectively applying changes in many files, WinMerge is my tool of choice. But for resolving merge conflicts, I go with Tortise Git.
I like kdiff3, vimdiff, and … intellij. Kdiff3 and intellij do “directories / file structures” too but I’m not sure the level you want it. Neither are cli though.
I’ve been using delta for a while, alongside lazygit, and enjoying it.
delta
https://github.com/dandavison/delta - link for the lazy.
alias diff='diff --width=$COLUMNS --suppress-common-lines --side-by-side --color=always'










