This ended up growing quite a bit, and I mostly hate it. - Patch 1 introduces GIT_CONFIG_SYSTEM_PATH environment variable that lets you point at a file other than /etc/gitconfig to pretend that your file is the system-wide configuration. - Patch 2 is a small bugfix. - Patches 3-7 are updates to 1300 and 1308, i.e. tests for "git config", to make them more robust, in preparation for using GIT_CONFIG_SYSTEM_PATH mechanism to point at a file during the test. It protects them a bit more than necessary in that the variables some of the tests they use when they try to see the output from "git config --get" are unlikely to appear in the fake system-wide configuration during the test (hence disabling the fake system-wide configuration has no practical effect), but nevertheless the calls are protected by explicitly telling them to read only from --local configuration file to future-proof them. - Patch 8 is queued elsewhere already. - Patch 9 raises the default core.abbrev to 12 and countermands it by setting it to 7 in a fake system-wide configuration file during our test. The unconditional widening of the default abbreviation size in this patch will have to be discarded, preferring the approach Linus is taking to auto-size it based on the number of objects in the repository, but the part that updates the test script may still be necessary. Jeff King (1): t1300: check also system-wide configuration file in --show-origin tests Junio C Hamano (8): config: allow customizing /etc/gitconfig location with an environment t1300: always compare expect to actual t1308: ignore system-wide config in the iteration test t1300: disable system-wide config for tests that wants to read from -c t1300: take contents of system-wide configuration into account in "--list" test t1300: be explicit in local configuration tests worktree: honor configuration variables core.abbrev: raise the default abbreviation to 12 hexdigits builtin/worktree.c | 2 + cache.h | 1 + config.c | 2 + environment.c | 2 +- t/gitconfig-for-test | 9 ++++ t/t1300-repo-config.sh | 120 ++++++++++++++++++++++++++++++------------------- t/t1308-config-set.sh | 1 + t/test-lib.sh | 4 +- 8 files changed, 93 insertions(+), 48 deletions(-) create mode 100644 t/gitconfig-for-test -- 2.10.0-589-g5adf4e1