Re: [PATCH] worktree add: improve message for ambiguous remote branch name

Yoichi Nakayama <[email protected]>
Newsgroups org.kernel.vger.git
Message-ID <CAF5D8-vVA31Ci+=+kJk+Lk6E4KvgA319hm5d1HZXgmSdNSgwnQ@mail.gmail.com>
On Wed, Aug 12, 2026 at 1:38 AM Ben Knoble <[email protected]> wrote:
>
>
> >
> > Le 10 août 2026 à 17:36, Yoichi Nakayama <[email protected]> a écrit :
> >
> > On Mon, Aug 10, 2026 at 10:08 PM D. Ben Knoble <[email protected]> wrote:
> >>> -static char *dwim_branch(const char *path, char **new_branch)
> >>> +static char *dwim_branch(const struct add_opts *opts, const char *path, char **new_branch)
> >>> {
> >>>        int n;
> >>>        int branch_exists;
> >>> @@ -781,8 +791,14 @@ static char *dwim_branch(const char *path, char **new_branch)
> >>>
> >>>        *new_branch = branchname;
> >>>        if (guess_remote) {
> >>> +               int num_matches = 0;
> >>>                struct object_id oid;
> >>> -               char *remote = unique_tracking_name(*new_branch, &oid, NULL);
> >>> +               char *remote = unique_tracking_name(*new_branch, &oid, &num_matches);
> >>> +               if (!opts->quiet && !remote && num_matches > 1) {
> >>> +                       if (advice_enabled(ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME))
> >>> +                               advise(_(message_advice_ambiguous_remote_tracking_branch));
> >>> +                       warning(_("'%s' matched multiple (%d) remote tracking branches\n"), branchname, num_matches);
> >>> +               }
> >>>                return remote;
> >>>        }
> >>>        return NULL;
> >>
> >> I suppose the extra warning won't hurt anyone's workflow :) so that's good.
> >
> > I removed the change (advise and warn) here in the latest patch. But I am still
> > wondering what I should do. I think a warning would be excessive if
> > there is no match,
> > but the user might want to know if there are multiple matches.
> >
> > Thanks,
> > --
> > Yoichi NAKAYAMA
>
> Sorry if I was unclear: I don’t know what hits this particular code path offhand, and I don’t think adding the warning is wrong! I meant « as opposed to dying, a warning won’t break anyone but will let them know of potentially unintended consequences », maybe.
>
> I’m not particularly invested in how we signal ambiguity, but if we don’t have a documented policy for resolving it in a particular way then I agree we should signal it.

Thank you for the additional information. I think the intention behind your
comment was clear. The reason I was wondering was simply that I hadn't yet
found a clear direction for what I should do.

The `git worktree add --guess-remote ../foo` command (without <commit-ish>) is
designed to successfully create the worktree even if the guess fails.
If we are to
issue a warning and advice, we need to indicate what to do next, given that the
worktree and the branch has already been created. It would be something like
    git -C ../foo reset –hard origin/foo
    git -C ../foo branch –set-upstream-to=origin/foo
but they are too complicated. So I now think it is a valid choice to
interpret the
behavior as normal and refrain from issuing a warning or advice.

Thanks,
-- 
Yoichi NAKAYAMA
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.