diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-05-19 16:45:30 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-05-19 16:45:30 +0900 |
commit | 85ac27e04fd0cf1d086028e87f69ffb498c1451b (patch) | |
tree | e4486ede9a0d92509bb49a6435e7cb126be6bf99 /builtin | |
parent | Merge branch 'mh/http-fread-api-fix' (diff) | |
parent | difftool: fallback on merge.guitool (diff) | |
download | tgif-85ac27e04fd0cf1d086028e87f69ffb498c1451b.tar.xz |
Merge branch 'dl/difftool-mergetool'
Update "git difftool" and "git mergetool" so that the combinations
of {diff,merge}.{tool,guitool} configuration variables serve as
fallback settings of each other in a sensible order.
* dl/difftool-mergetool:
difftool: fallback on merge.guitool
difftool: make --gui, --tool and --extcmd mutually exclusive
mergetool: fallback to tool when guitool unavailable
mergetool--lib: create gui_mode function
mergetool: use get_merge_tool function
t7610: add mergetool --gui tests
t7610: unsuppress output
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/difftool.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/builtin/difftool.c b/builtin/difftool.c index 04ffa1d943..53188df714 100644 --- a/builtin/difftool.c +++ b/builtin/difftool.c @@ -24,7 +24,6 @@ #include "object-store.h" #include "dir.h" -static char *diff_gui_tool; static int trust_exit_code; static const char *const builtin_difftool_usage[] = { @@ -34,11 +33,6 @@ static const char *const builtin_difftool_usage[] = { static int difftool_config(const char *var, const char *value, void *cb) { - if (!strcmp(var, "diff.guitool")) { - diff_gui_tool = xstrdup(value); - return 0; - } - if (!strcmp(var, "difftool.trustexitcode")) { trust_exit_code = git_config_bool(var, value); return 0; @@ -735,8 +729,11 @@ int cmd_difftool(int argc, const char **argv, const char *prefix) setenv(GIT_WORK_TREE_ENVIRONMENT, absolute_path(get_git_work_tree()), 1); } - if (use_gui_tool && diff_gui_tool && *diff_gui_tool) - setenv("GIT_DIFF_TOOL", diff_gui_tool, 1); + if (use_gui_tool + !!difftool_cmd + !!extcmd > 1) + die(_("--gui, --tool and --extcmd are mutually exclusive")); + + if (use_gui_tool) + setenv("GIT_MERGETOOL_GUI", "true", 1); else if (difftool_cmd) { if (*difftool_cmd) setenv("GIT_DIFF_TOOL", difftool_cmd, 1); |