aboutsummaryrefslogtreecommitdiff
path: root/path.c
diff options
context:
space:
mode:
authorPhillip Wood <phillip.wood@dunelm.org.uk>2026-02-19 14:26:33 +0000
committerJunio C Hamano <gitster@pobox.com>2026-02-19 11:03:24 -0800
commita49cb0f093809e3e66566f161aa930f37346775d (patch)
tree7e1aa8f3ac6d725c12929b5116c001dbca25e945 /path.c
parentcb18484385eb66f6220d2418d62ad790358899d1 (diff)
downloadgit-a49cb0f093809e3e66566f161aa930f37346775d.tar.xz
path: remove repository argument from worktree_git_path()
worktree_git_path() takes a struct repository and a struct worktree which also contains a struct repository. The repository argument was added by a973f60dc7c (path: stop relying on `the_repository` in `worktree_git_path()`, 2024-08-13) and exists because the worktree argument is optional. Having two ways of passing a repository is a potential foot-gun as if the the worktree argument is present the repository argument must match the worktree's repository member. Since the last commit there are no callers that pass a NULL worktree so lets remove the repository argument. This removes the potential confusion and lets us delete a number of uses of "the_repository". worktree_git_path() has the following callers: - builtin/worktree.c:validate_no_submodules() which is called from check_clean_worktree() and move_worktree(), both of which supply a non-NULL worktree. - builtin/fsck.c:cmd_fsck() which loops over all worktrees. - revision.c:add_index_objects_to_pending() which loops over all worktrees. - worktree.c:worktree_lock_reason() which dereferences wt before calling worktree_git_path(). - wt-status.c:wt_status_check_bisect() and wt_status_check_rebase() which are always called with a non-NULL worktree after the last commit. - wt-status.c:git_branch() which is only called by wt_status_check_bisect() and wt_status_check_rebase(). Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'path.c')
-rw-r--r--path.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/path.c b/path.c
index d726537622..073f631b91 100644
--- a/path.c
+++ b/path.c
@@ -486,17 +486,16 @@ const char *mkpath(const char *fmt, ...)
return cleanup_path(pathname->buf);
}
-const char *worktree_git_path(struct repository *r,
- const struct worktree *wt, const char *fmt, ...)
+const char *worktree_git_path(const struct worktree *wt, const char *fmt, ...)
{
struct strbuf *pathname = get_pathname();
va_list args;
- if (wt && wt->repo != r)
- BUG("worktree not connected to expected repository");
+ if (!wt)
+ BUG("%s() called with NULL worktree", __func__);
va_start(args, fmt);
- repo_git_pathv(r, wt, pathname, fmt, args);
+ repo_git_pathv(wt->repo, wt, pathname, fmt, args);
va_end(args);
return pathname->buf;
}