[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jgit-dev] EGit Bug#356832 Allow use of external mergetool

Hi JGit developers,

I want to contribute some groundwork for EGit Bug#356832 (Allow use of external mergetool).[1] In the discussion on Bugzilla it emerged that basic support for an external diff/merge tool should be provided in JGit, and then just called from EGit.

Basically, I think this means that JGit should support the external diff/merge tool functionality that the native git client also supports, including the config entry 'diff.external' and the GIT_EXTERNAL_DIFF environment variable, and the git difftool command. (Similarly for mergetool.) Once all this is in place, EGit can call the equivalent of 'git difftool --gui' on JGit (and perhaps also be a nice frontend for the relevant config settings). Does this strategy make sense?

As a first step, I have implemented support for the 'diff.external' config option and GIT_EXTERNAL_DIFF, here:

https://git.eclipse.org/r/#/c/100521/ Config setting 'external' in diff section
https://git.eclipse.org/r/#/c/100522/ Call external command from git diff with git standard parameters
https://git.eclipse.org/r/#/c/100523/ Support GIT_EXTERNAL_DIFF environment variable

If either the env variable or the config entry is present, JGit calls the configured external program with the standard parameters.[2,3] I have aimed at re-using as much existing JGit infrastructure as possible (DiffConfig, FS). 

Could you have a look? Is there anything else I need to provide to get the review process going? Thanks for any pointers/feedback!

Best,
Leif


[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=356832
[2] https://git-scm.com/docs/git-config#git-config-diffexternal
[3] https://git-scm.com/docs/git#git-codeGITEXTERNALDIFFcode