== Description == [[http://meldmerge.org/|Meld]] is a tool for making manual merges. It is a 3-way editor with visualization and propagation of differences. Meld is available for Linux, MacOS, and Windows. On MacOS, Meld is available from [[https://www.macports.org/|MacPorts]], Fink, and [[https://brew.sh/|Homebrew]]. There are some notes available on [[https://wiki.gnome.org/Apps/Meld/Windows|how to get Meld running on Windows]]. == Usage notes and tips == * "Arrows" for propagation mode are toggled somehow with shift and control and alt * All 3 panes can be edited individually and must be saved individually * One way of working with Meld is to work towards making all 3 files equal - that forces you to review and rethink your merges in both contexts * Mercurial by default puts "file" is to the left, then "file~base", and finally "file~other" * By default then the left pane is the merge result * Enjoy that it is easy to see how the base version has diverged into two different versions * Changes from the new parent in "file~other" (to the right) can be propagated to "file" (to the left) through "file~base" * You could (and should?) start by copying everything from "file~other" to "file~base" in order to work with the two parents side-by-side - but then it is just a two-way merge... * Or, to change the order and which panes are displayed add a section "[merge-tools]" with "meld.args = $base $local $other" to your ~/.hgrc, specifying the order you prefer (since Meld's default order is different from some other diff tools) * To not see base at all set it to "meld.args = $local $other". You merge to the local copy, which in this arrangement is still the left pane == Example .hgrc config == {{{ [merge-tools] meld.priority = 1 meld.args = $base $local $other }}} == Using meld for viewing diffs == Adding this to your {{{.hgrc}}} will give you a {{{hg meldiff}}} command to view diffs in Meld (of course you can call it what you like). {{{ [extensions] hgext.extdiff= [extdiff] cmd.meldiff = meld }}}