difftool: add support for a difftool.prompt config variable
difftool now supports difftool.prompt so that users do not have to pass --no-prompt or hit enter each time a diff tool is launched. The --prompt flag overrides the configuration variable. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
f92f2038a5
commit
a904392eae
@ -15,6 +15,7 @@ remove_config_vars()
|
||||
# Unset all config variables used by git-difftool
|
||||
git config --unset diff.tool
|
||||
git config --unset difftool.test-tool.cmd
|
||||
git config --unset difftool.prompt
|
||||
git config --unset merge.tool
|
||||
git config --unset mergetool.test-tool.cmd
|
||||
return 0
|
||||
@ -26,11 +27,18 @@ restore_test_defaults()
|
||||
remove_config_vars
|
||||
unset GIT_DIFF_TOOL
|
||||
unset GIT_MERGE_TOOL
|
||||
unset GIT_DIFFTOOL_PROMPT
|
||||
unset GIT_DIFFTOOL_NO_PROMPT
|
||||
git config diff.tool test-tool &&
|
||||
git config difftool.test-tool.cmd 'cat $LOCAL'
|
||||
}
|
||||
|
||||
prompt_given()
|
||||
{
|
||||
prompt="$1"
|
||||
test "$prompt" = "Hit return to launch 'test-tool': branch"
|
||||
}
|
||||
|
||||
# Create a file on master and change it on branch
|
||||
test_expect_success 'setup' '
|
||||
echo master >file &&
|
||||
@ -116,6 +124,62 @@ test_expect_success 'GIT_DIFFTOOL_NO_PROMPT variable' '
|
||||
restore_test_defaults
|
||||
'
|
||||
|
||||
# git-difftool supports the difftool.prompt variable.
|
||||
# Test that GIT_DIFFTOOL_PROMPT can override difftool.prompt = false
|
||||
test_expect_success 'GIT_DIFFTOOL_PROMPT variable' '
|
||||
git config difftool.prompt false &&
|
||||
GIT_DIFFTOOL_PROMPT=true &&
|
||||
export GIT_DIFFTOOL_PROMPT &&
|
||||
|
||||
prompt=$(echo | git difftool --prompt branch | tail -1) &&
|
||||
prompt_given "$prompt" &&
|
||||
|
||||
restore_test_defaults
|
||||
'
|
||||
|
||||
# Test that we don't have to pass --no-prompt when difftool.prompt is false
|
||||
test_expect_success 'difftool.prompt config variable is false' '
|
||||
git config difftool.prompt false &&
|
||||
|
||||
diff=$(git difftool branch) &&
|
||||
test "$diff" = "branch" &&
|
||||
|
||||
restore_test_defaults
|
||||
'
|
||||
|
||||
# Test that the -y flag can override difftool.prompt = true
|
||||
test_expect_success 'difftool.prompt can overridden with -y' '
|
||||
git config difftool.prompt true &&
|
||||
|
||||
diff=$(git difftool -y branch) &&
|
||||
test "$diff" = "branch" &&
|
||||
|
||||
restore_test_defaults
|
||||
'
|
||||
|
||||
# Test that the --prompt flag can override difftool.prompt = false
|
||||
test_expect_success 'difftool.prompt can overridden with --prompt' '
|
||||
git config difftool.prompt false &&
|
||||
|
||||
prompt=$(echo | git difftool --prompt branch | tail -1) &&
|
||||
prompt_given "$prompt" &&
|
||||
|
||||
restore_test_defaults
|
||||
'
|
||||
|
||||
# Test that the last flag passed on the command-line wins
|
||||
test_expect_success 'difftool last flag wins' '
|
||||
diff=$(git difftool --prompt --no-prompt branch) &&
|
||||
test "$diff" = "branch" &&
|
||||
|
||||
restore_test_defaults &&
|
||||
|
||||
prompt=$(echo | git difftool --no-prompt --prompt branch | tail -1) &&
|
||||
prompt_given "$prompt" &&
|
||||
|
||||
restore_test_defaults
|
||||
'
|
||||
|
||||
# git-difftool falls back to git-mergetool config variables
|
||||
# so test that behavior here
|
||||
test_expect_success 'difftool + mergetool config variables' '
|
||||
|
Reference in New Issue
Block a user