From 7e30682ce042fdea1ff2c76226b17d9affe2f9bf Mon Sep 17 00:00:00 2001 From: Alexander Gavrilov Date: Sun, 31 Aug 2008 00:56:51 +0400 Subject: git-gui: Support calling merge tools. Adds an item to the diff context menu in conflict mode, which invokes a merge tool for the selected file. Tool command-line handling code was ported from git-mergetool. Automatic default tool selection and custom merge tools are not supported. If merge.tool is not set, git-gui defaults to meld. This implementation uses a checkout-index hack in order to retrieve all stages with autocrlf and filters properly applied. It requires temporarily moving the original conflict file out of the way. Signed-off-by: Alexander Gavrilov Signed-off-by: Shawn O. Pearce --- git-gui.sh | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'git-gui.sh') diff --git a/git-gui.sh b/git-gui.sh index 3ce33283c2..677a27150c 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -657,6 +657,8 @@ proc apply_config {} { } set default_config(branch.autosetupmerge) true +set default_config(merge.tool) {} +set default_config(merge.keepbackup) true set default_config(merge.diffstat) true set default_config(merge.summary) false set default_config(merge.verbosity) 2 @@ -2775,6 +2777,11 @@ create_common_diff_popup $ctxm set ctxmmg .vpane.lower.diff.body.ctxmmg menu $ctxmmg -tearoff 0 +$ctxmmg add command \ + -label [mc "Run Merge Tool"] \ + -command {merge_resolve_tool} +lappend diff_actions [list $ctxmmg entryconf [$ctxmmg index last] -state] +$ctxmmg add separator $ctxmmg add command \ -label [mc "Use Remote Version"] \ -command {merge_resolve_one 3} -- cgit v1.3