Diffinity
About Diffinity
Diffinity compares two text files side by side and shows which lines changed and, inside those lines, which characters changed. That second part is the reason to pick it over the dozen other two-pane comparers. Most of them colour a whole line when a single semicolon moved. This one colours the semicolon.
It sits in the same category as WinMerge and the built-in compare views of code editors, and it is narrower than either. What you get is a diff engine tuned for source code and XML, a folder comparison mode, and an editor in each pane so you can fix what you are looking at without opening anything else.
For the everyday job of “what did they change in this file”, Diffinity is quicker to read than the bigger tools.
Reading a diff at character level
Open two files and the panes fill with three colours. Green marks lines added on the right, red marks lines removed from the left, and blue marks lines present in both but different. Inside a blue line the same three colours repeat at character level, so a renamed variable shows as a blue line with two small red and green patches rather than a solid bar.
The diff engine understands C-style braces and XML tags well enough to keep matching blocks aligned when someone inserts a function in the middle of a file.
A thumbnail strip along the edge shows the whole file as a coloured map so you can jump to the next change without scrolling. When the alignment guesses wrong, and on heavily reworked files it will, you place a manual alignment marker on a line in each pane and the engine re-diffs from there.
That marker rescues diffs of refactored files, and WinMerge has nothing equivalent.
Editing and merging in place
Both panes are live editors. Type in either one and the diff updates as you go, so you can fix a typo in the modified file and watch the blue line turn white. Merging is done line by line through right-click, toolbar or menu, copying a line or block from left to right or the reverse.
There is no “take all from left” and no conflict resolution against a common ancestor, so this is for reconciling two versions by hand, not for the merge step of a version control system. Even so, it beats the bare two-pane comparer of old programming kits, which cannot merge at all.
Double-click a word and every instance in both files lights up, which is a fast way to check whether a rename was applied everywhere. Encoding is detected per file and the application warns when the two do not match, the usual cause of a diff that reports every line as changed when the files look identical. A tabbed interface holds several comparisons open at once.
Folder comparison
Point Diffinity at two folders and it lists files that exist on one side only, files that differ and files that match, with a filter that can restrict the list to files containing a given string.
The folder view is plain compared with the dedicated folder-sync tools, with no recursion controls beyond include and exclude patterns and no copy-to-other-side action for whole trees, so it works for checking a deployment against source and not for keeping two trees in sync.
Right-click and custom commands
Installation adds two entries to the Explorer context menu. Select two files, right-click, choose Diff, and the comparison opens. Select one file and choose the first entry, then select another and choose the second, and the two are compared, which is how you diff files in different folders without opening the application first.
Custom commands let you launch an external program against the current file, and the executable also accepts two paths on the command line, so a version control client can be told to use it as its external diff viewer.
A code editor with a compare plugin covers the same case without leaving the editor, though without the alignment marker or the encoding warning.
Conclusion
Diffinity is for someone who reviews code changes in files rather than in a repository view, and who has been annoyed by diff tools that paint a whole line for a one-character edit. People checking a website theme update against their modified copy, and anyone maintaining configuration files by hand, are the natural audience.
It is not the tool for merging branches or synchronising folders. For those, the heavier comparers earn their bulk. For reading what changed, this one is faster and clearer, and the alignment marker alone makes it a keeper.
Pros & Cons
- Character-level highlighting inside changed lines
- Manual alignment markers rescue diffs of heavily reworked files
- Both panes are editable and the diff updates as you type
- Encoding mismatch warning explains the all-lines-changed diff before you waste time on it
- Two-step Explorer context menu compares files in different folders
- No three-way merge or common ancestor view
- Folder comparison lists differences but cannot copy whole trees across
- Merging is strictly line by line with no take-all action
- Requires the .NET runtime to be present
Frequently asked questions
No. It compares two files and copies lines between them. Conflicts against a common ancestor need a three-way tool.
The two files use different encodings or line endings. The application warns about encoding mismatch at the top of the panes. Convert one file and compare again.
Right-click the first file and choose the first Diffinity entry, then right-click the second and choose the second entry. The comparison opens with both loaded.
Yes. The executable takes two file paths as arguments, so point the client's external diff setting at it.