summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2010-06-26 14:25:37 -0500
committerJunio C Hamano <gitster@pobox.com>2010-06-28 10:31:17 -0700
commitbce2c9ae9ff458b6090953ab9f639255f757a104 (patch)
tree0523fa50860d71654f4936b554497341f50395e8
parent8f81449e885ab2b9bac09b5b835314d26f107b3f (diff)
downloadgit-bce2c9ae9ff458b6090953ab9f639255f757a104.tar.gz
tests: local config file should be honored from subdirs of toplevel
When git is passed the --paginate option, starting up a pager requires deciding what pager to start, which requires access to the core.pager configuration. If --paginate is handled before searching for the git dir, this configuration will be missed. In other words, with --paginate and only with --paginate, any repository-local core.pager setting is being ignored [*]. [*] unless the git directory is ./.git or GIT_DIR or GIT_CONFIG was set explicitly. Add a test to demonstrate this counterintuitive behavior. Noticed while reading over a patch by Duy that fixes it. Cc: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Improved-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t7006-pager.sh26
1 files changed, 26 insertions, 0 deletions
diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 4420f91693..2b106be9e9 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -259,6 +259,28 @@ test_core_pager_overrides() {
"
}
+test_core_pager_subdir() {
+ parse_args "$@"
+
+ $test_expectation TTY "$cmd - core.pager from subdirectory" "
+ unset GIT_PAGER;
+ rm -f core.pager_used &&
+ rm -fr sub ||
+ cleanup_fail &&
+
+ PAGER=wc &&
+ stampname=\$(pwd)/core.pager_used &&
+ export PAGER stampname &&
+ git config core.pager 'wc >\"\$stampname\"' &&
+ mkdir sub &&
+ (
+ cd sub &&
+ $full_command
+ ) &&
+ test -e core.pager_used
+ "
+}
+
test_GIT_PAGER_overrides() {
parse_args "$@"
@@ -277,21 +299,25 @@ test_GIT_PAGER_overrides() {
test_default_pager expect_success 'git log'
test_PAGER_overrides expect_success 'git log'
test_core_pager_overrides expect_success 'git log'
+test_core_pager_subdir expect_success 'git log'
test_GIT_PAGER_overrides expect_success 'git log'
test_default_pager expect_success 'git -p log'
test_PAGER_overrides expect_success 'git -p log'
test_core_pager_overrides expect_success 'git -p log'
+test_core_pager_subdir expect_failure 'git -p log'
test_GIT_PAGER_overrides expect_success 'git -p log'
test_default_pager expect_success test_must_fail 'git -p'
test_PAGER_overrides expect_success test_must_fail 'git -p'
test_core_pager_overrides expect_success test_must_fail 'git -p'
+test_core_pager_subdir expect_failure test_must_fail 'git -p'
test_GIT_PAGER_overrides expect_success test_must_fail 'git -p'
test_default_pager expect_success test_must_fail 'git -p nonsense'
test_PAGER_overrides expect_success test_must_fail 'git -p nonsense'
test_core_pager_overrides expect_success test_must_fail 'git -p nonsense'
+test_core_pager_subdir expect_failure test_must_fail 'git -p nonsense'
test_GIT_PAGER_overrides expect_success test_must_fail 'git -p nonsense'
test_done