How Meld Integrates with Version Control Systems
Updated
Meld connects to version control in two ways: it reads the state of a repository so you can review changes and commit from inside the tool, and it can register itself as the external merge tool that Git and other systems call when a merge conflict needs resolving. The page lists support for Git, Mercurial, Bazaar, and Subversion, plus integration with tools such as git mergetool.
What the version control integration gives you
According to Meld's feature list, the version control support covers three concrete tasks:
- Check your changes — see what you have modified before committing.
- Commit and push easily — perform the commit (and push) without leaving Meld.
- View and manage version control states — inspect the status of files in the repository.
Because Meld is fundamentally a two- and three-way comparison tool for files and directories, the version control layer is what supplies the "before" and "after" sides of those comparisons: your working copy against the last commit, or two branches against each other.
Supported systems
| System | Listed support |
|---|---|
| Git | Yes |
| Mercurial | Yes |
| Bazaar | Yes |
| Subversion | Yes |
The page also names git mergetool as a tool integration, which is the mechanism that lets Git hand a conflicted file to Meld.
Using Meld as your merge tool
The general pattern for any diff/merge tool that integrates with git mergetool is:
- Install Meld so the executable is on your
PATH. On Linux/Unix it is packaged for most distributions and available on Flathub; Windows users download the installer; macOS is not officially supported but semi-official builds exist via Homebrew, MacPorts, or Fink. - Tell Git to use it. Git ships with a built-in
meldmergetool definition, so you can select it by name rather than writing a custom command. - Trigger a merge that produces conflicts, then run the mergetool command.
- Resolve in Meld. Meld's three-way merge assistance shows the conflict alongside the base version, so you can pick or edit the result.
- Save and exit, then let Git record the resolved file.
The expected result is that Git's conflicted file is replaced by the version you assembled in Meld, and the merge can continue.
A concrete example
You are on a branch and git merge reports a conflict in config.py. Running the mergetool command opens Meld with the local version, the incoming version, and the common base. You edit the middle pane until the file is correct, save, close the window, and Git marks the file as resolved. This is the workflow the "three-way merge assistance with conflict handling and base version display" feature is built for.
Practical notes and limits
- Meld is not a replacement for your VCS client. It handles review, commit, push, and status for the supported systems, but the page does not claim full history browsing or remote management.
- Platform support is uneven. Linux/Unix and Windows are the primary targets; macOS relies on semi-official builds that "may have issues with recent versions of macOS."
- No automatic updates or portable installs are supported, so plan on updating manually.
- Running from source is possible without installing: clone the repository and run
bin/melddirectly, which is useful if you want to test the version control integration against a development build.
If your goal is simply to compare two files or folders, you do not need any of this — the version control features only matter when the files you are comparing live in a repository.