Skip to content

Commit

Permalink
tests: local config file should be honored from subdirs of toplevel
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jonathan Nieder authored and Junio C Hamano committed Jun 28, 2010
1 parent 8f81449 commit bce2c9a
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions t/t7006-pager.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 "$@"

Expand All @@ -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

0 comments on commit bce2c9a

Please sign in to comment.