diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2017-04-17 17:10:02 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-04-19 18:50:30 -0700 |
commit | e145a0bc9b8711fe1c6cfad29af52ef06ce4c1ec (patch) | |
tree | 9ad64ddf3cb267686cfa6d9f6bd19de04152a341 /builtin/commit.c | |
parent | 2185fde56328942d5be9603cc199ee7c6d004085 (diff) | |
download | git-e145a0bc9b8711fe1c6cfad29af52ef06ce4c1ec.tar.gz |
config: correct file reading order in read_early_config()nd/conditional-config-in-early-config
Config file reading order is important because each file can override
values in the previous files and this is expected behavior. Normally
we read in this order, all in do_git_config_sequence():
1. $HOME/.gitconfig
2. $GIT_DIR/config
3. config from command line
However in read_early_config() the order may be swapped a bit if
setup_git_directory() has not been called:
1. $HOME/.gitconfig
2. $GIT_DIR/config is NOT read because .git dir is not found _yet_
3. config from command line
4. $GIT_DIR/config is now READ (after discover_git_directory() call)
The reading at step 4 could override config at step 3, which is not
the expectation.
Now that we could pass the .git dir around, we could feed
discover_git_directory() back to step 2, so that it works again, and
remove step 4.
Noticed-by: Jeff King <peff@peff.net>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/commit.c')
0 files changed, 0 insertions, 0 deletions