Better merge tool integration

Gordon Tyler gordon.tyler at gmail.com
Thu Jul 1 01:59:28 BST 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,

I'm working on bug 489915 (https://bugs.launchpad.net/bugs/489915) to
improve bzr's integration with external merge tools like kdiff3, meld, etc.

My plan is:

1. Create a mergetools module in bzrlib which provides an API for
configuring and invoking external merge tools.
2. Add 'bzr' commands for configuring and invoking the tools.
3. Modify qconflicts to use the mergetools module for invoking the tools.
4. Modify qconfig to use the mergetools module for configuring the tools.

The configuration stored is pretty simple: just a commandline with the
same substitution markers as bzr-extmerge (%b, %t, %o, %r, %T). Quotes
are supported so stuff like "C:\Program Files\KDiff3\kdiff3.exe" will work.

The mergetools API will allow querying whether the merge tool is
available (is the path to the executable correct or is it available on
the path?) and the "name" of the tool (i.e. the basename of the
executable) for UI purposes.

The reason it has an availability check is that I want to provide a
default set of tools in the configuration that might be available on the
path, and the UI would indicate which of these particular merge tools
are available and pre-configured for use. The user would just have to
pick the one they want to use as their default. They could also
customize a particular merge tool to set the path to the executable if
it cannot be found on the path (mostly for Windows).

Any thoughts or ideas on improvements?

Thanks,
Gordon

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJMK+hwAAoJEIrPJfWinA2uSBsH/ROJQCdcUpPfzS4vy0MV6lRA
8OZ8qg05yGZh/3A2s/gX7nrXXZeme6Hceq2PMsncqwbMFNg0B54O9TUHixLWMaRv
hPKayExST8hV/aoo8qn/I2ksG9aEAu0+MwgJB2ZaMDGROcq1hfFgPL0zvrNLhH6m
JLecbqRr3f5E+5u9YXfx4L+tSHyCVonxpccUgqxNPM9QvrztCf/qnFdqIZ+nxY+D
ehNM+7/YbPv0rnwTD0QEHRB+Gxl7GX635mSpUJ7DAWm7BkrqNgh3KTm5AIQccUN1
uBMoRcsDmoLrrGJwA9rBzARWGOHL7NIyzb5qlgi4/l8sCqtUJWRlJ27d1hpsLBQ=
=rbRa
-----END PGP SIGNATURE-----



More information about the bazaar mailing list