diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2017-03-13 21:11:08 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-03-14 14:24:16 -0700 |
commit | 267b4538c0e13f98870bf808ee6c71fca9cf2ef7 (patch) | |
tree | 4ae01f263447c974aeaf4204836706e3a2f35c36 /config.c | |
parent | 0654aa57f30fc7984e19b91cdbee123f929ca7b1 (diff) | |
download | git-267b4538c0e13f98870bf808ee6c71fca9cf2ef7.tar.gz |
read_early_config(): avoid .git/config hack when unneeded
So far, we only look whether the startup_info claims to have seen a
git_dir.
However, do_git_config_sequence() (and consequently the
git_config_with_options() call used by read_early_config() asks the
have_git_dir() function whether we have a .git/ directory, which in turn
also looks at git_dir and at the environment variable GIT_DIR. And when
this is the case, the repository config is handled already, so we do not
have to do that again explicitly.
Let's just use the same function, have_git_dir(), to determine whether we
have to handle .git/config explicitly.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -1427,14 +1427,15 @@ void read_early_config(config_fn_t cb, void *data) * core.repositoryformatversion), we'll read whatever is in .git/config * blindly. Similarly, if we _are_ in a repository, but not at the * root, we'll fail to find .git/config (because it's really - * ../.git/config, etc). See t7006 for a complete set of failures. + * ../.git/config, etc), unless setup_git_directory() was already called. + * See t7006 for a complete set of failures. * * However, we have historically provided this hack because it does * work some of the time (namely when you are at the top-level of a * valid repository), and would rarely make things worse (i.e., you do * not generally have a .git/config file sitting around). */ - if (!startup_info->have_repository) { + if (!have_git_dir()) { struct git_config_source repo_config; memset(&repo_config, 0, sizeof(repo_config)); |