I have been hanging out in Theme Hybrid forums lately (it is research for new theme, not having fun solving obscure code puzzles, honestly! :) One of recent inquiries was how to determine if files were modified and what was changed.
One of those tasks you can’t expect human to do reliably (browsing several hundreds of files and thousand of lines – yeaaaah), but computers are wickedly good at. I wanted to recommend something free, light and convenient (instead of heavier stuff I use generally) and remembered WinMerge.
What it does
Basically app compares files or directories to precisely find differences and allow you to work with those conveniently. It is bit of file manager and sync tool, bit of text editor and a lot of text comparison.
Interface is multi-windowed and can hold multiple comparisons (file or folder either) at the same time.
Aside for core comparing function (which is not that hard to implement) WinMerge goes extra mile to allow to customize and tweak how comparisons work. There are plenty of plugins and filters features (with regular expressions support) to pick:
- what is getting compared;
- how it is getting compared’;
- which parts to ignore.
App also has extensive command line interface and integrates with everything from Windows Explorer to SVN tools.
The one thing I don’t particularly like is how file comparison creates too much whitespace. Lines only present in one file are blank lines in opposing file. With high number of differences it can really blow up total amount of lines.
It is not critical (buttons to jump between differences help) but I think NetBeans has that nailed much better in its comparison interface that uses arrow-like markings to show were lines go, without inserting tons of blank space.