All of lore.kernel.org
 help / color / mirror / Atom feed
From: Glen Choo <chooglen@google.com>
To: Tao Klerks <tao@klerks.biz>
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"Tao Klerks via GitGitGadget" <gitgitgadget@gmail.com>,
	git@vger.kernel.org, "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: Re: [PATCH v6] tracking branches: add advice to ambiguous refspec error
Date: Fri, 01 Apr 2022 09:41:47 -0700	[thread overview]
Message-ID: <kl6lpmm0sqlw.fsf@chooglen-macbookpro.roam.corp.google.com> (raw)
In-Reply-To: <CAPMMpojb7-tD2kFNZPiaC0MpB8GNXtYqpJs796pRcM7pE=ksmg@mail.gmail.com>

Tao Klerks <tao@klerks.biz> writes:

> On Fri, Apr 1, 2022 at 1:57 AM Glen Choo <chooglen@google.com> wrote:
>>
>> Junio C Hamano <gitster@pobox.com> writes:
>>
>> > "Tao Klerks via GitGitGadget" <gitgitgadget@gmail.com> writes:
>> >
>> >>      if (!remote_find_tracking(remote, &tracking->spec)) {
>> >> -            if (++tracking->matches == 1) {
>> >> +            switch (++tracking->matches) {
>> >> +            case 1:
>> >>                      string_list_append(tracking->srcs, tracking->spec.src);
>> >>                      tracking->remote = remote->name;
>> >> -            } else {
>> >> +                    break;
>> >> +            case 2:
>> >> +                    /* there are at least two remotes; backfill the first one */
>> >> +                    string_list_append(&ftb->ambiguous_remotes, tracking->spec.src);
>> >> +                    /* fall through */
>> >> +            default:
>> >> +                    string_list_append(&ftb->ambiguous_remotes, remote->name);
>> >>                      free(tracking->spec.src);
>> >>                      string_list_clear(tracking->srcs, 0);
>> >> +            break;
>> >
>> > Just to sanity check this part,
>> >
>> >  - During the first iteration, we append tracking->spec.src to
>> >    tracking->srcs, and set tracking->remote to remote->name;
>> >
>> >  - In later iterations, we do not want to touch tracking->srcs, and
>> >    want to collect remote->name.
>> >
>> > And "backfill" assumes that tracking->spec.src at that point in the
>> > second iteration is the same as what we got in remote->name in the
>> > first round.  If that were a correct assumption, then it is curious
>> > that the first iteration uses tracking->spec.src and remote->name
>> > separately for different purposes, which makes me want to double
>> > check if the assumption is indeed correct.
>> >
>> > If it were tracking->remote (which was assigned the value of
>> > remote->name during the first iteration) that is used to backfill
>> > before we append remote->name in the second iteration, I wouldn't
>> > find it "curious", but the use of tracking->spec.src there makes me
>> > feel confused.
>> >
>> > Thanks.
>>
>> Thanks for bringing this up, I also found this unusual when I was
>> reading v5.
>
> If you never hear from me again, please know it's because I crawled
> back under the rock I had crawled out from. This is clearly a bug from
> a silly typo, and I've managed to look at the resulting output twice
> without noticing the wrong thing was printed. I'm guessing the use of
> the word "unusual" here is a polite euphemism for "you numskull, what
> you wrote makes no sense!" :)

Please don't take it that way! I use it the way I think most others use
it, which is a more charitable "Hm, I trust the author, but this looks
confusing to me and let me ask just to be sure that all our bases are
covered."

After all, even the best of us make mistakes, so I don't think it's a
big deal. Plus, if the mistake managed to sneak past review, the fault
is on all of us :)

> I did not think adding an automated test for advise() output made
> sense, but I guess I have proved myself wrong.

Heh, nearly every time I think that a test isn't necessary, I find a way
to prove myself wrong too.

  reply	other threads:[~2022-04-01 16:50 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-21 10:23 [PATCH] tracking branches: add advice to ambiguous refspec error Tao Klerks via GitGitGadget
2022-03-21 14:11 ` Ævar Arnfjörð Bjarmason
2022-03-22  9:09   ` Tao Klerks
2022-03-22  9:18 ` [PATCH v2] RFC: " Tao Klerks via GitGitGadget
2022-03-22 10:04   ` Ævar Arnfjörð Bjarmason
2022-03-28  6:51   ` [PATCH v3] " Tao Klerks via GitGitGadget
2022-03-28 16:23     ` Junio C Hamano
2022-03-28 17:12       ` Glen Choo
2022-03-28 17:23         ` Junio C Hamano
2022-03-28 18:02           ` Tao Klerks
2022-03-28 18:50             ` Ævar Arnfjörð Bjarmason
2022-03-28 20:32               ` Junio C Hamano
2022-03-28 20:27             ` Junio C Hamano
2022-03-29 11:26               ` Tao Klerks
2022-03-29 11:26     ` [PATCH v4] " Tao Klerks via GitGitGadget
2022-03-29 11:31       ` Tao Klerks
2022-03-29 15:49       ` Junio C Hamano
2022-03-30  4:17         ` Tao Klerks
2022-03-30  7:20       ` [PATCH v5] " Tao Klerks via GitGitGadget
2022-03-30 13:19         ` Ævar Arnfjörð Bjarmason
2022-03-30 14:23           ` Tao Klerks
2022-03-30 15:18             ` Tao Klerks
2022-03-30 17:14               ` Ævar Arnfjörð Bjarmason
2022-03-30 20:37           ` Junio C Hamano
2022-03-30 21:09             ` Ævar Arnfjörð Bjarmason
2022-03-30 22:07               ` Junio C Hamano
2022-03-30 22:51                 ` Ævar Arnfjörð Bjarmason
2022-03-31 16:01         ` [PATCH v6] " Tao Klerks via GitGitGadget
2022-03-31 19:32           ` Junio C Hamano
2022-03-31 23:57             ` Glen Choo
2022-04-01  4:30               ` Tao Klerks
2022-04-01 16:41                 ` Glen Choo [this message]
2022-03-31 19:33           ` Junio C Hamano
2022-04-01  6:05           ` [PATCH v7] " Tao Klerks via GitGitGadget
2022-04-01 16:53             ` Glen Choo
2022-04-01 19:57               ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=kl6lpmm0sqlw.fsf@chooglen-macbookpro.roam.corp.google.com \
    --to=chooglen@google.com \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=tao@klerks.biz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.