Re: [PATCH 2/2] path: remove repository argument from worktree_git_path()
Phillip Wood <phillip.wood123@gmail.com> writes:
Show 34 quoted lines
> From: Phillip Wood <phillip.wood@dunelm.org.uk>
>
> 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().
>
Nice. Well explained, the patch looks good to me :)
[snip]