Merge branch 'js/difftool-builtin'

A few hot-fixes to C-rewrite of "git difftool".

* js/difftool-builtin:
  t7800: simplify basic usage test
  difftool: fix bug when printing usage
This commit is contained in:
Junio C Hamano 2017-02-10 12:52:25 -08:00
commit 163d24dc4d
2 changed files with 16 additions and 4 deletions

View File

@ -647,10 +647,6 @@ int cmd_difftool(int argc, const char **argv, const char *prefix)
OPT_END() OPT_END()
}; };
/* NEEDSWORK: once we no longer spawn anything, remove this */
setenv(GIT_DIR_ENVIRONMENT, absolute_path(get_git_dir()), 1);
setenv(GIT_WORK_TREE_ENVIRONMENT, absolute_path(get_git_work_tree()), 1);
git_config(difftool_config, NULL); git_config(difftool_config, NULL);
symlinks = has_symlinks; symlinks = has_symlinks;
@ -661,6 +657,10 @@ int cmd_difftool(int argc, const char **argv, const char *prefix)
if (tool_help) if (tool_help)
return print_tool_help(); return print_tool_help();
/* NEEDSWORK: once we no longer spawn anything, remove this */
setenv(GIT_DIR_ENVIRONMENT, absolute_path(get_git_dir()), 1);
setenv(GIT_WORK_TREE_ENVIRONMENT, absolute_path(get_git_work_tree()), 1);
if (use_gui_tool && diff_gui_tool && *diff_gui_tool) if (use_gui_tool && diff_gui_tool && *diff_gui_tool)
setenv("GIT_DIFF_TOOL", diff_gui_tool, 1); setenv("GIT_DIFF_TOOL", diff_gui_tool, 1);
else if (difftool_cmd) { else if (difftool_cmd) {

View File

@ -23,6 +23,18 @@ prompt_given ()
test "$prompt" = "Launch 'test-tool' [Y/n]? branch" test "$prompt" = "Launch 'test-tool' [Y/n]? branch"
} }
test_expect_success 'basic usage requires no repo' '
test_expect_code 129 git difftool -h >output &&
grep ^usage: output &&
# create a ceiling directory to prevent Git from finding a repo
mkdir -p not/repo &&
test_when_finished rm -r not &&
test_expect_code 129 \
env GIT_CEILING_DIRECTORIES="$(pwd)/not" \
git -C not/repo difftool -h >output &&
grep ^usage: output
'
# Create a file on master and change it on branch # Create a file on master and change it on branch
test_expect_success 'setup' ' test_expect_success 'setup' '
echo master >file && echo master >file &&