]> Kevux Git Server - rit/commit
path: remove repository argument from worktree_git_path()
authorPhillip Wood <phillip.wood@dunelm.org.uk>
Thu, 19 Feb 2026 14:26:33 +0000 (14:26 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 19 Feb 2026 19:03:24 +0000 (11:03 -0800)
commita49cb0f093809e3e66566f161aa930f37346775d
tree7e1aa8f3ac6d725c12929b5116c001dbca25e945
parentcb18484385eb66f6220d2418d62ad790358899d1
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>
builtin/fsck.c
builtin/worktree.c
path.c
path.h
revision.c
worktree.c
wt-status.c