aboutsummaryrefslogtreecommitdiff
path: root/worktree.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2026-04-03 13:01:09 -0700
committerJunio C Hamano <gitster@pobox.com>2026-04-03 13:01:09 -0700
commit05ddb9ee8a4c619fbb0e7309fe291bff5cd7c987 (patch)
tree6c4a0689880561d4c409a0765c7cd1c4657cf382 /worktree.c
parent0cd4fb9f46eb0ebd0d243a886ce9a52210e0723e (diff)
parent758086869940c96585f05a0eefe6d2f24fd70630 (diff)
downloadgit-05ddb9ee8a4c619fbb0e7309fe291bff5cd7c987.tar.xz
Merge branch 'pw/worktree-reduce-the-repository'
Reduce the reference to the_repository in the worktree subsystem. * pw/worktree-reduce-the-repository: worktree: reject NULL worktree in get_worktree_git_dir() worktree add: stop reading ".git/HEAD" worktree: remove "the_repository" from is_current_worktree()
Diffstat (limited to 'worktree.c')
-rw-r--r--worktree.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/worktree.c b/worktree.c
index 56732f8f33..d874e23b4e 100644
--- a/worktree.c
+++ b/worktree.c
@@ -58,7 +58,7 @@ static void add_head_info(struct worktree *wt)
static int is_current_worktree(struct worktree *wt)
{
- char *git_dir = absolute_pathdup(repo_get_git_dir(the_repository));
+ char *git_dir = absolute_pathdup(repo_get_git_dir(wt->repo));
char *wt_git_dir = get_worktree_git_dir(wt);
int is_current = !fspathcmp(git_dir, absolute_path(wt_git_dir));
free(wt_git_dir);
@@ -78,7 +78,7 @@ struct worktree *get_worktree_from_repository(struct repository *repo)
wt->is_bare = !repo->worktree;
if (fspathcmp(gitdir, commondir))
wt->id = xstrdup(find_last_dir_sep(gitdir) + 1);
- wt->is_current = is_current_worktree(wt);
+ wt->is_current = true;
add_head_info(wt);
free(gitdir);
@@ -227,11 +227,11 @@ struct worktree **get_worktrees_without_reading_head(void)
char *get_worktree_git_dir(const struct worktree *wt)
{
if (!wt)
- return xstrdup(repo_get_git_dir(the_repository));
+ BUG("%s() called with NULL worktree", __func__);
else if (!wt->id)
- return xstrdup(repo_get_common_dir(the_repository));
+ return xstrdup(repo_get_common_dir(wt->repo));
else
- return repo_common_path(the_repository, "worktrees/%s", wt->id);
+ return repo_common_path(wt->repo, "worktrees/%s", wt->id);
}
static struct worktree *find_worktree_by_suffix(struct worktree **list,