environment: make get_git_common_dir() accept a repository
The `get_git_common_dir()` function retrieves the path to the common directory for `the_repository`. Make it accept a `struct repository` such that it can work on arbitrary repositories and make it part of the repository subsystem. This reduces our reliance on `the_repository` and clarifies scope. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
246deeac95
commit
661624a4f6
@@ -72,7 +72,7 @@ static struct worktree *get_main_worktree(int skip_reading_head)
|
||||
struct worktree *worktree = NULL;
|
||||
struct strbuf worktree_path = STRBUF_INIT;
|
||||
|
||||
strbuf_add_real_path(&worktree_path, get_git_common_dir());
|
||||
strbuf_add_real_path(&worktree_path, repo_get_common_dir(the_repository));
|
||||
strbuf_strip_suffix(&worktree_path, "/.git");
|
||||
|
||||
CALLOC_ARRAY(worktree, 1);
|
||||
@@ -143,7 +143,7 @@ static struct worktree **get_worktrees_internal(int skip_reading_head)
|
||||
|
||||
list[counter++] = get_main_worktree(skip_reading_head);
|
||||
|
||||
strbuf_addf(&path, "%s/worktrees", get_git_common_dir());
|
||||
strbuf_addf(&path, "%s/worktrees", repo_get_common_dir(the_repository));
|
||||
dir = opendir(path.buf);
|
||||
strbuf_release(&path);
|
||||
if (dir) {
|
||||
@@ -173,7 +173,7 @@ const char *get_worktree_git_dir(const struct worktree *wt)
|
||||
if (!wt)
|
||||
return repo_get_git_dir(the_repository);
|
||||
else if (!wt->id)
|
||||
return get_git_common_dir();
|
||||
return repo_get_common_dir(the_repository);
|
||||
else
|
||||
return git_common_path("worktrees/%s", wt->id);
|
||||
}
|
||||
@@ -626,7 +626,7 @@ static int is_main_worktree_path(const char *path)
|
||||
|
||||
strbuf_add_real_path(&target, path);
|
||||
strbuf_strip_suffix(&target, "/.git");
|
||||
strbuf_add_real_path(&maindir, get_git_common_dir());
|
||||
strbuf_add_real_path(&maindir, repo_get_common_dir(the_repository));
|
||||
strbuf_strip_suffix(&maindir, "/.git");
|
||||
cmp = fspathcmp(maindir.buf, target.buf);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user