When comparing WinMerge vs Fork, the Slant community recommends WinMerge for most people. In the question“What are the best visual merge tools for Git?” WinMerge is ranked 8th while Fork is ranked 11th. The most important reason people chose WinMerge is:
You can quickly copy changed lines (or files in folder comparison) in both directions with keyboard shortcuts. You can edit the files as well, with syntax highlighting of some languages.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro File edition
You can quickly copy changed lines (or files in folder comparison) in both directions with keyboard shortcuts. You can edit the files as well, with syntax highlighting of some languages.
Pro Compare folders and files
Can show what files has been changed in a folder, allows comparing files in tabs.
Pro In line comparison
Can show differences within a line.
Pro Free & Open source
Winmerge is a free and open source tool.
Pro Good shell integration
Select two files and compare them. Alternatively, select one file, navigate elsewhere, select the other file to compare.
Also supports drag'n'drop of files / folders from Explorer.
History of past comparisons.
Pro Lightweight, quick startup
Binary is less than 3 MB, so it starts quickly
Pro Filters
Can filter out files for folder comparison, lines for file comparisons, with regular expressions.
Options also allow to ignore whitespace differences, white lines, case change, line-ending changes, etc.
Pro Good navigation
Keyboard shortcuts (and toolbar buttons) to navigate to next (previous) difference, side panel shows a map of the files with changed lines and allows to jump to a given place.
Pro Good detection of moved lines
Detects when a block of lines has been moved in the file and shows the relation.
Pro Fast and easy to use
Pro Comfortable when staging line-by-line changes
This feature is superior to the one that is implemented by SourceTree as it does not reset the file scroll view to the top of the file after each stage.
If you do feature-specific commits after some time of development - it's very important to be able to easily compose the commit from different line-based changes.
Pro Smart Diff is very handy
Pro Tabbed interface
Several repos can be open at once in individual tabs, so it's trivial to switch back and forth between them.
Pro Overall aesthetic
The GUI components are flawless on the Mac. It is expected to be a similar experience on Windows. Once you realize that you can filter by branch, your appreciation for the product will go up dramatically.
Pro Dark theme support
Pro Highlights the difference within a line
Pro Merge Conflict Resolution is great
Pro Comfortable keyboard shortcuts
Pro Repositories with uncommitted changes have a * next to their name
This is an update from previous versions.
Cons
Con Windows only
It's only available for Windows. No Mac or Linux versions available. It is possible to run in Linux via WINE, although a bit unstable.
Con Development is spotty
The latest version (2.16.0) was released in November 2018. Before that the last official release was made in 2013. The 2.16.0 is actually one of the two forks (Winmerge-v2-jp) that were kept maintained throughout the years, it just got named as the official release.
The other fork, WinMerge2011 is still being actively developed too. It's on par with the historical version, and has additional features such as showing only differences and a 64-bit version.
An 'official' list of forks is maintained here.
Con No 3-way merge
Cannot merge 3 files, can do only comparisons by pairs.
Makes it unsuitable for merging operations, still useful to compare two versions in the history.
Con Still a young client, thus not as feature rich
This git GUI client is quite young compared to industry old-timers like git-tower 2 or SourceTree. So it's not as feature rich as you'd like. Still a very capable client for a simple day-to-day work.
Con No Linux version
This git client is not compatible with Linux making the life harder for the developers that work on both, MacOS and some Linux distro.
Con Requires granting access to your git projects for the developer of the app
