The original git-mergetool program is intended to be used from the command line, and thus does not integrate well with GUI usage. For instance, it presents the user with its own interactive interface, based on text-mode prompts. This series implements mergetool functionality within git-gui, replacing the default 'Stage Hunk/Line' context menu items for unresolved files with conflict resolution commands. It also enhances auto-selection behavior to minimize the necessary number of clicks on the items of the file lists, and adds special handling of diffs for conflicts involving deletion or symlinks. Custom merge tools are not supported as I'm not sure of the best way to evaluate command line patterns that are intended for the shell from Tcl. PATCHES: git-gui: Don't allow staging files with conflicts. --- git-gui.sh | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) git-gui: Support resolving conflicts via the diff context menu. --- git-gui.sh | 152 ++++++++++++++++++++++++++++++++--------------------- lib/mergetool.tcl | 98 ++++++++++++++++++++++++++++++++++ 2 files changed, 190 insertions(+), 60 deletions(-) create mode 100644 lib/mergetool.tcl git-gui: Support calling merge tools. --- git-gui.sh | 7 ++ lib/mergetool.tcl | 252 +++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/option.tcl | 1 + 3 files changed, 260 insertions(+), 0 deletions(-) git-gui: Support more merge tools. --- lib/mergetool.tcl | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-) git-gui: Support conflict states _U & UT. --- git-gui.sh | 6 ++++-- lib/commit.tcl | 1 + lib/diff.tcl | 2 +- lib/index.tcl | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) git-gui: Reimplement and enhance auto-selection of diffs. --- git-gui.sh | 122 +++++++++++++++++++++++++++++++++++++++++------------ lib/diff.tcl | 18 +++++--- lib/mergetool.tcl | 8 +--- 3 files changed, 109 insertions(+), 39 deletions(-) git-gui: Make F5 reselect a diff, if an untracked file is selected. --- git-gui.sh | 44 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 35 insertions(+), 9 deletions(-) git-gui: Show special diffs for complex conflict cases. --- lib/diff.tcl | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 89 insertions(+), 5 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html