From: Johannes Schindelin Date: Wed, 14 Jun 2017 11:35:56 +0000 (+0200) Subject: t7006: demonstrate a problem with aliases in subdirectories X-Git-Tag: v2.13.3~20^2~1 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3f9c5dfb7118256747de5efbaa4b5cd3f0e02331;p=git-core%2Fgit.git t7006: demonstrate a problem with aliases in subdirectories When expanding aliases, the git_dir is set during the alias expansion (by virtue of running setup_git_directory_gently()). This git_dir may be relative to the current working directory, and indeed often is simply ".git/". When the alias expands to a shell command, we restore the original working directory, though, yet we do not reset git_dir. As a consequence, subsequent read_early_config() runs will mistake the git_dir to be populated properly and not find the correct config. Demonstrate this problem by adding a test case. Signed-off-by: Johannes Schindelin Reviewed-by: Jeff King Signed-off-by: Junio C Hamano --- diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh index 4f3794d41..83881ec3a 100755 --- a/t/t7006-pager.sh +++ b/t/t7006-pager.sh @@ -391,6 +391,17 @@ test_expect_success TTY 'core.pager in repo config works and retains cwd' ' ) ' +test_expect_failure TTY 'core.pager is found via alias in subdirectory' ' + sane_unset GIT_PAGER && + test_config core.pager "cat >via-alias" && + ( + cd sub && + rm -f via-alias && + test_terminal git -c alias.r="-p rev-parse" r HEAD && + test_path_is_file via-alias + ) +' + test_doesnt_paginate expect_failure test_must_fail 'git -p nonsense' test_pager_choices 'git shortlog'