All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Glen Choo <chooglen@google.com>
Cc: "Tao Klerks via GitGitGadget" <gitgitgadget@gmail.com>,
	git@vger.kernel.org, "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Tao Klerks" <tao@klerks.biz>
Subject: Re: [PATCH v3] tracking branches: add advice to ambiguous refspec error
Date: Mon, 28 Mar 2022 10:23:12 -0700	[thread overview]
Message-ID: <xmqqilry2dq7.fsf@gitster.g> (raw)
In-Reply-To: <kl6l7d8et314.fsf@chooglen-macbookpro.roam.corp.google.com> (Glen Choo's message of "Mon, 28 Mar 2022 10:12:07 -0700")

Glen Choo <chooglen@google.com> writes:

> Hm, what do you think of an alternate approach of storing of the
> matching remotes in a string_list, something like:
>
>   struct find_tracked_branch_cb {
>   	struct tracking *tracking;
>   	struct string_list matching_remotes;
>   };
>   
>   static int find_tracked_branch(struct remote *remote, void *priv)
>   {
>   	struct tracking *tracking = priv;
>   	struct find_tracked_branch_cb *ftb = priv;
>   	struct tracking *tracking = ftb->tracking;
>   
>   	if (!remote_find_tracking(remote, &tracking->spec)) {
>   		if (++tracking->matches == 1) {
>   			string_list_append(tracking->srcs, tracking->spec.src);
>   			tracking->remote = remote->name;
>   		} else {
>   			free(tracking->spec.src);
>   			string_list_clear(tracking->srcs, 0);
>   		}
>   		string_list_append(&ftb->matching_remotes, remote->name);
>   		tracking->spec.src = NULL;
>   	}
>
> then construct the advice message in setup_tracking()? To my untrained
> eye, "case 2" requires a bit of extra work to understand.

If I were writing this code from scratch, I would have probably
collected the names first in this callback, and assembled them at
the end into a single string when we need a single string to show.

Having said that, as long as you do that lazily not to penalize
those who have sane setting without the need for advice/error to
trigger, I do not particularly care how the list of matching remote
names are kept.  Having string_list_append() unconditionally like
the above patch has, even for folks with just a single match without
need for the advice/error message is suboptimal, I would think.


  reply	other threads:[~2022-03-28 17:23 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 [this message]
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
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=xmqqilry2dq7.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=avarab@gmail.com \
    --cc=chooglen@google.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.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.