DiffMerge: Visually Compare and Merge Files, and Which Build to Download

Two overlapping cartoon windows of code, one with a tangerine title bar and one with a blue title bar. In the left window one line is highlighted raspberry with a minus sign, in the right window the matching line is highlighted emerald with a plus sign, and a curved arrow joins them. A friendly magnifying glass with a smiling face sits between the windows. Big text reads: Diff Merge, which build? A corner ribbon says Updated guide. Stickers read GPL-3.0, Free to use and Apple Silicon, and a speech bubble says Spot the difference.

In short: DiffMerge compares two files or folders and merges three, free of charge on Windows, macOS and Linux. Version 4.2 from 2013 is closed-source, while version 5 is a GPL-3.0 pre-release on GitHub and the only one with an Apple Silicon build.

Sooner or later you need to know exactly what differs between two files, or which files sit in one folder and not in the other. The classic case is a development copy of a web application next to its production copy. Checking by eye is slow and misses things, and a visual diff tool shows the answer line by line.

DiffMerge, from SourceGear, is one such tool. This page keeps the original idea of the guide, a quick way to compare a development and a production copy, and corrects what has changed since: the licence, the versions on offer and the macOS situation.

Source-checked, not tested hands-on: the facts come from the sources listed under References, and no DiffMerge build was run for this guide. The command examples follow SourceGear’s 4.2 manual; whether they behave the same on current operating systems and in version 5 is unverified.

What can DiffMerge do?

  • Compare two files. It shows them side by side, highlights changes inside a line and lets you edit the file on the right[1][2].
  • Merge three files. The middle file is normally the common ancestor, and the outer two are the versions that changed independently. Auto-merge applies the changes that do not conflict, and you resolve the rest by hand[3][4].
  • Compare two folders. The listing is recursive and marks each file as equal, different or present on one side only. Double-clicking a pair opens its file diff[1][5].
  • Run the same on every platform. Windows, macOS and Linux share one feature set, and Windows adds a right-click entry in Explorer[1].

Developers often reach for git diff for the same job, and DiffMerge can plug into Git too (see below). The tool is most useful for the files and folders that are not in a repository, such as a plain copy of a site downloaded from a server.

Is DiffMerge free and open source?

The original version of this guide called DiffMerge "completely free and open-source". That was half right, and which half depends on the version.

  • Version 4.2 is free to use but not open source. SourceGear's manual says it is licensed for use free of charge, and asks users to register for a small fee. Registration keys do not expire, and without one the program occasionally shows a registration dialog[7]. The licence agreement says the software is licensed, not sold, and forbids reverse engineering[8].
  • Version 5 is open source under GPL-3.0. The sourcegear/diffmerge repository carries the GNU GPL v3 and describes itself as an open source (GPL3) release of DiffMerge[9]. In April 2026 a SourceGear support reply on the DiffMerge forum said the product was moving to an open source project, and asked for bug reports and enhancement requests to go to GitHub[10].

Set expectations for version 5 accordingly. The GitHub repository has three commits, the last in January 2025, a single release marked as a pre-release (5.0.0.1) and several open issues[9]. The download page and the release notes on SourceGear's own site still stop at 4.2, whose last listed release is dated October 2013[11][12].

Which DiffMerge build should I download?

Platform Stable 4.2 from SourceGear[11] 5.0.0.1 pre-release from GitHub[9]
Windows Installer and zip, 64-bit and 32-bit (4.2.0) MSI and zip, x64 and x86
Linux Packages for Ubuntu 12.04 and newer and for Fedora 17 and newer, 64-bit and 32-bit (4.2.0) .deb for Ubuntu on amd64
macOS DMG for macOS 10.6 and newer, Intel only (4.2.1) DMG for Apple Silicon (arm64) and one for Intel (x64)

On Windows and Linux, SourceGear still offers 4.2 and documents it in a manual[11]. The 5.0.0.1 builds are labelled as development builds in their file names. Check that whichever version you pick runs on your system before you rely on it.

macOS needs more care:

  • The 4.2.1 build is Intel-only. Homebrew's record for the diffmerge cask says it is built for Intel macOS and needs Rosetta 2 on an Apple Silicon Mac[13]. Homebrew now lists that cask as disabled, with 1 September 2026 as the date and a failed macOS Gatekeeper check as the reason[13].
  • The 5.0.0.1 builds are neither signed nor notarised. The repository's README says so[9]. One reported issue is titled "5.0.0.1 macos arm64 shows as damaged", and a reply there explains that macOS is saying the app is not signed or notarised, so it needs permission in System Settings before it will run[14].

Run an unsigned app only if you are comfortable trusting it. If you are not, use one of the alternatives further down.

How do I compare a development copy with production?

These steps read files and folders, but DiffMerge can also edit and save them. Work on copies, never on a live site, and keep a backup of anything you intend to change. You use this information at your own risk, and iLogr accepts no responsibility for any loss or damage.

A folder comparison drawn as a two-column list: development on the left, production copy on the right, with a status in the middle. Three files are equal: index.php, style.css and logo.png, marked with a grey tick. Two files are different: config.php and app.js, marked in tangerine with a two-arrow icon. One file exists only on the left, notes.txt, tagged raspberry. One file exists only on the right, maintenance.html, tagged emerald. A status strip underneath reads: equal 3, different 2, one side only 2.
How a folder comparison sorts files: equal, different, or present on one side only. (Original illustration, not a screenshot.) The file names are examples.
  1. Put both versions on your own machine: the development folder, and a copy of the production folder downloaded from the server.
  2. In DiffMerge choose File | Open Folder Diff and enter or browse to the two folders[6].
  3. Read the listing. Rows marked different show files that exist on both sides with changes, and rows with a single entry exist on one side only[5].
  4. Double-click a pair of files that differ to open its file diff, and step through the changes.
  5. If a folder you do not care about makes the listing slow or noisy, such as a cache directory, add it on the Folder Filters page of the Options dialog. The manual notes that filters speed up scanning and reduce clutter[15].

The same comparison works from a terminal. The synopsis from the manual opens a folder diff for two folders:

diffmerge folder1 folder2

To write the differences to a file without opening a window, and to get an exit status that a script can test, the manual gives this form[16]:

diffmerge -diff=report.txt folder1 folder2

The exit status is 0 when the folders are identical, 1 when they differ, 2 for file system errors and 3 for a syntax error in the command line[16]. For two files, the second file is editable unless you pass -ro2, which treats it as read-only[17]:

diffmerge -ro2 file1 file2

How do I use DiffMerge with Git?

Git can launch an external tool with git difftool and git mergetool. For Linux, SourceGear's manual gives these settings, which write to your global Git configuration[18]:

git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/usr/bin/diffmerge \"\$LOCAL\" \"\$REMOTE\""
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.diffmerge.cmd "/usr/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""

The manual's macOS version of the same commands uses /usr/local/bin/diffmerge as the path[19], and the Windows settings depend on which Git distribution you use[20]. Leave out --global to try the tool in a single repository first. With these settings, git difftool opens a two-way compare, and git mergetool opens the three-way merge window with your version, the common ancestor and the other version, writing the result to the merged file.

What are the alternatives to DiffMerge?

These alternatives have recent releases. On macOS, check the signing and notarisation status of the build you choose before installing it:

  • Meld compares files and folders, supports three-way comparison and works with Git. It is packaged for most Linux distributions, has a Windows installer, and its site describes macOS support as unofficial, with semi-official builds through Homebrew, MacPorts and Fink. Its current stable release is 3.24.1[21].
  • KDiff3 compares and merges two or three files or folders, and its KDE page offers it for Linux, macOS and Windows. It had releases in 2026[22].
  • WinMerge is an open-source comparison and merge tool for Windows only, with a release in August 2026[23].

References

Numbers in square brackets in the text link to these sources.

  1. SourceGear, "DiffMerge" (opens in a new tab).Used for: the feature summary: diff, three-way merge, folder diff and Explorer integration.
  2. SourceGear, DiffMerge manual, "File Diff Windows" (opens in a new tab).Used for: the two-way view with an editable right-hand file.
  3. SourceGear, DiffMerge manual, "File Merge Windows" (opens in a new tab).Used for: the three-way view with the common ancestor in the middle.
  4. SourceGear, DiffMerge manual, "Merge to Center Panel (Auto-Merge)" (opens in a new tab).Used for: how auto-merge handles non-conflicting changes.
  5. SourceGear, DiffMerge manual, "Folder Listing" (opens in a new tab).Used for: the folder listing statuses and double-clicking a pair to open it.
  6. SourceGear, DiffMerge manual, "Opening Folder Diff Windows" (opens in a new tab).Used for: the File, Open Folder Diff menu path.
  7. SourceGear, DiffMerge manual, "Registration" (opens in a new tab).Used for: free-of-charge use and the optional registration fee for 4.2.
  8. SourceGear, DiffMerge manual, "SourceGear License Agreement" (opens in a new tab).Used for: licensed-not-sold terms and the reverse engineering limit in 4.2.
  9. sourcegear/diffmerge on GitHub, README, licence and release v5.0.0.1 (opens in a new tab).Used for: the GPL-3.0 licence, build list, pre-release status and unsigned macOS builds.
  10. SourceGear Support, "Worried about the continued support to diffmerge in macOS 26.4" (opens in a new tab).Used for: SourceGear's April 2026 statement about the open source move.
  11. SourceGear, "DiffMerge downloads" (opens in a new tab).Used for: the versions and platforms offered and the Intel-only macOS build.
  12. SourceGear, "DiffMerge release notes" (opens in a new tab).Used for: 4.2.0 of October 2013 as the latest listed release.
  13. Homebrew, cask "diffmerge" (opens in a new tab).Used for: the Intel-only build, the Rosetta 2 requirement and the disabled status.
  14. sourcegear/diffmerge on GitHub, issue 3, "5.0.0.1 macos arm64 shows as damaged" (opens in a new tab).Used for: the damaged warning on the unsigned arm64 build and the explanation given.
  15. SourceGear, DiffMerge manual, "The Folder Filters Page" (opens in a new tab).Used for: filtering folders to speed up scanning.
  16. SourceGear, DiffMerge manual, "Diffing Folders to a File" (opens in a new tab).Used for: the diff-to-file syntax and the four exit statuses.
  17. SourceGear, DiffMerge manual, "Opening a Diff Window" (opens in a new tab).Used for: the folder and file command line forms and the read-only flag.
  18. SourceGear, DiffMerge manual, "Settings for Linux" (Git) (opens in a new tab).Used for: the Git difftool and mergetool settings.
  19. SourceGear, DiffMerge manual, "Settings for OS X" (Git) (opens in a new tab).Used for: the macOS path of the diffmerge command.
  20. SourceGear, DiffMerge manual, "Settings for Windows" (Git) (opens in a new tab).Used for: Windows settings varying by Git distribution.
  21. Meld, project site (opens in a new tab).Used for: Meld's features, platforms and the 3.24.1 stable release.
  22. KDE, "KDiff3" (opens in a new tab).Used for: KDiff3's features, platforms and release list.
  23. WinMerge on GitHub, README and releases (opens in a new tab).Used for: WinMerge being Windows-only and open source, and its August 2026 release.

Leave a Reply

Your email address will not be published. Required fields are marked * See the privacy policy for how comments are handled.