From: Denton Liu <liu.denton@gmail.com>
To: git@vger.kernel.org
Cc: liu.denton@gmail.com, anmolmago@gmail.com, briankyho@gmail.com,
david.lu97@outlook.com, shirui.wang@hotmail.com,
davvid@gmail.com, gitster@pobox.com
Subject: [RESEND PATCH v3 1/3] mergetool: accept -g/--[no-]gui as arguments
Date: Fri, 26 Oct 2018 02:11:18 -0400 [thread overview]
Message-ID: <20181026061118.GA7295@archbookpro.localdomain> (raw)
In-Reply-To: <cover.1540398076.git.liu.denton@gmail.com>
In line with how difftool accepts a -g/--[no-]gui option, make mergetool
accept the same option in order to use the `merge.guitool` variable to
find the default mergetool instead of `merge.tool`.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Anmol Mago <anmolmago@gmail.com>
Signed-off-by: Brian Ho <briankyho@gmail.com>
Signed-off-by: David Lu <david.lu97@outlook.com>
Signed-off-by: Ryan Wang <shirui.wang@hotmail.com>
Acked-by: David Aguilar <davvid@gmail.com>
---
Documentation/git-mergetool.txt | 11 +++++++++++
git-mergetool--lib.sh | 16 +++++++++++-----
git-mergetool.sh | 11 +++++++++--
3 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt
index 3622d6648..0c7975a05 100644
--- a/Documentation/git-mergetool.txt
+++ b/Documentation/git-mergetool.txt
@@ -79,6 +79,17 @@ success of the resolution after the custom tool has exited.
Prompt before each invocation of the merge resolution program
to give the user a chance to skip the path.
+-g::
+--gui::
+ When 'git-mergetool' is invoked with the `-g` or `--gui` option
+ the default merge tool will be read from the configured
+ `merge.guitool` variable instead of `merge.tool`.
+
+--no-gui::
+ This overrides a previous `-g` or `--gui` setting and reads the
+ default merge tool will be read from the configured `merge.tool`
+ variable.
+
-O<orderfile>::
Process files in the order specified in the
<orderfile>, which has one shell glob pattern per line.
diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index 9a8b97a2a..83bf52494 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -350,17 +350,23 @@ guess_merge_tool () {
}
get_configured_merge_tool () {
- # Diff mode first tries diff.tool and falls back to merge.tool.
- # Merge mode only checks merge.tool
+ # If first argument is true, find the guitool instead
+ if test "$1" = true
+ then
+ gui_prefix=gui
+ fi
+
+ # Diff mode first tries diff.(gui)tool and falls back to merge.(gui)tool.
+ # Merge mode only checks merge.(gui)tool
if diff_mode
then
- merge_tool=$(git config diff.tool || git config merge.tool)
+ merge_tool=$(git config diff.${gui_prefix}tool || git config merge.${gui_prefix}tool)
else
- merge_tool=$(git config merge.tool)
+ merge_tool=$(git config merge.${gui_prefix}tool)
fi
if test -n "$merge_tool" && ! valid_tool "$merge_tool"
then
- echo >&2 "git config option $TOOL_MODE.tool set to unknown tool: $merge_tool"
+ echo >&2 "git config option $TOOL_MODE.${gui_prefix}tool set to unknown tool: $merge_tool"
echo >&2 "Resetting to default..."
return 1
fi
diff --git a/git-mergetool.sh b/git-mergetool.sh
index d07c7f387..01b9ad59b 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -9,7 +9,7 @@
# at the discretion of Junio C Hamano.
#
-USAGE='[--tool=tool] [--tool-help] [-y|--no-prompt|--prompt] [-O<orderfile>] [file to merge] ...'
+USAGE='[--tool=tool] [--tool-help] [-y|--no-prompt|--prompt] [-g|--gui|--no-gui] [-O<orderfile>] [file to merge] ...'
SUBDIRECTORY_OK=Yes
NONGIT_OK=Yes
OPTIONS_SPEC=
@@ -389,6 +389,7 @@ print_noop_and_exit () {
main () {
prompt=$(git config --bool mergetool.prompt)
+ gui_tool=false
guessed_merge_tool=false
orderfile=
@@ -414,6 +415,12 @@ main () {
shift ;;
esac
;;
+ --no-gui)
+ gui_tool=false
+ ;;
+ -g|--gui)
+ gui_tool=true
+ ;;
-y|--no-prompt)
prompt=false
;;
@@ -443,7 +450,7 @@ main () {
if test -z "$merge_tool"
then
# Check if a merge tool has been configured
- merge_tool=$(get_configured_merge_tool)
+ merge_tool=$(get_configured_merge_tool $gui_tool)
# Try to guess an appropriate merge tool if no tool has been set.
if test -z "$merge_tool"
then
--
2.19.1
next prev parent reply other threads:[~2018-10-26 6:11 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-24 2:25 [PATCH 1/2] mergetool: Accept -g/--[no-]gui as arguments Denton Liu
2018-10-24 5:10 ` Junio C Hamano
2018-10-24 5:30 ` Denton Liu
2018-10-24 5:44 ` David Aguilar
2018-10-24 5:58 ` [PATCH v2 1/2] mergetool: accept " Denton Liu
2018-10-24 16:25 ` [PATCH v3 0/3] Add --gui to mergetool Denton Liu
2018-10-24 16:25 ` [PATCH v3 1/3] mergetool: accept -g/--[no-]gui as arguments Denton Liu
2018-10-24 16:25 ` [PATCH v3 2/3] completion: support `git mergetool --[no-]gui` Denton Liu
2018-10-24 16:25 ` [PATCH v3 3/3] doc: document diff/merge.guitool config keys Denton Liu
2018-10-26 6:11 ` [RESEND PATCH v3 0/3] Add --gui to mergetool Denton Liu
2018-10-26 13:15 ` Junio C Hamano
2018-10-26 6:11 ` Denton Liu [this message]
2018-10-26 6:11 ` [RESEND PATCH v3 2/3] completion: support `git mergetool --[no-]gui` Denton Liu
2018-10-26 6:11 ` [RESEND PATCH v3 3/3] doc: document diff/merge.guitool config keys Denton Liu
2018-10-24 5:58 ` [PATCH v2 2/2] completion: support `git mergetool --[no-]gui` Denton Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181026061118.GA7295@archbookpro.localdomain \
--to=liu.denton@gmail.com \
--cc=anmolmago@gmail.com \
--cc=briankyho@gmail.com \
--cc=david.lu97@outlook.com \
--cc=davvid@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=shirui.wang@hotmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).