diff options
Diffstat (limited to 'environment.c')
-rw-r--r-- | environment.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/environment.c b/environment.c index 050f1607d5..8351007b30 100644 --- a/environment.c +++ b/environment.c @@ -142,6 +142,7 @@ static char *git_path_from_env(const char *envvar, const char *git_dir, static void setup_git_env(void) { + struct strbuf sb = STRBUF_INIT; const char *gitfile; const char *shallow_file; @@ -150,12 +151,9 @@ static void setup_git_env(void) git_dir = DEFAULT_GIT_DIR_ENVIRONMENT; gitfile = read_gitfile(git_dir); git_dir = xstrdup(gitfile ? gitfile : git_dir); - git_common_dir = getenv(GIT_COMMON_DIR_ENVIRONMENT); - if (git_common_dir) { + if (get_common_dir(&sb, git_dir)) git_common_dir_env = 1; - git_common_dir = xstrdup(git_common_dir); - } else - git_common_dir = git_dir; + git_common_dir = strbuf_detach(&sb, NULL); git_object_dir = git_path_from_env(DB_ENVIRONMENT, git_common_dir, "objects", &git_db_env); git_index_file = git_path_from_env(INDEX_ENVIRONMENT, git_dir, |