summaryrefslogtreecommitdiff
path: root/repository.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2018-03-03 18:35:57 +0700
committerJunio C Hamano <gitster@pobox.com>2018-03-05 11:14:03 -0800
commit7bc0dcaa6120efec8cf8caef8511c09d35dbcf09 (patch)
treea5aebaf563a84a28783059b5aae03caa4fafeece /repository.c
parent0ac5af59957cc46641a6083207c9a04c1a9fa9c8 (diff)
downloadgit-7bc0dcaa6120efec8cf8caef8511c09d35dbcf09.tar.gz
sha1_file.c: move delayed getenv(altdb) back to setup_git_env()
getenv() is supposed to work on the main repository only. This delayed getenv() code in sha1_file.c makes it more difficult to convert sha1_file.c to a generic object store that could be used by both submodule and main repositories. Move the getenv() back in setup_git_env() where other env vars are also fetched. 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 'repository.c')
-rw-r--r--repository.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/repository.c b/repository.c
index e65f4138a7..04d85a2869 100644
--- a/repository.c
+++ b/repository.c
@@ -60,6 +60,8 @@ void repo_set_gitdir(struct repository *repo,
repo_set_commondir(repo, o->commondir);
expand_base_dir(&repo->objectdir, o->object_dir,
repo->commondir, "objects");
+ free(repo->alternate_db);
+ repo->alternate_db = xstrdup_or_null(o->alternate_db);
expand_base_dir(&repo->graft_file, o->graft_file,
repo->commondir, "info/grafts");
expand_base_dir(&repo->index_file, o->index_file,
@@ -215,6 +217,7 @@ void repo_clear(struct repository *repo)
FREE_AND_NULL(repo->gitdir);
FREE_AND_NULL(repo->commondir);
FREE_AND_NULL(repo->objectdir);
+ FREE_AND_NULL(repo->alternate_db);
FREE_AND_NULL(repo->graft_file);
FREE_AND_NULL(repo->index_file);
FREE_AND_NULL(repo->worktree);