From: Patrick Steinhardt <ps@pks.im>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: git@vger.kernel.org, Jeff King <peff@peff.net>,
Phillip Wood <phillip.wood123@gmail.com>,
Junio C Hamano <gitster@pobox.com>,
Justin Tobler <jltobler@gmail.com>
Subject: Re: [PATCH v2 09/10] ref-filter: properly distinuish pseudo and root refs
Date: Thu, 2 May 2024 10:08:04 +0200 [thread overview]
Message-ID: <ZjNJ5EPMYxLi1QR0@tanuki> (raw)
In-Reply-To: <CAOLa=ZQY5rdUqcy0yTB0haduf9EK7KVLeoAYLyaST4fMn6UyFw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2823 bytes --]
On Tue, Apr 30, 2024 at 06:11:05AM -0700, Karthik Nayak wrote:
> In the subject: s/distinuish/distinguish
>
> Patrick Steinhardt <ps@pks.im> writes:
>
> > The ref-filter interfaces currently define root refs as either a
> > detached HEAD or a pseudo ref. Pseudo refs aren't root refs though, so
> > let's properly distinguish those ref types.
> >
> > Signed-off-by: Patrick Steinhardt <ps@pks.im>
> > ---
> > builtin/for-each-ref.c | 2 +-
> > ref-filter.c | 16 +++++++++-------
> > ref-filter.h | 4 ++--
> > refs.c | 18 +-----------------
> > refs.h | 18 ++++++++++++++++++
> > 5 files changed, 31 insertions(+), 27 deletions(-)
> >
> > diff --git a/builtin/for-each-ref.c b/builtin/for-each-ref.c
> > index 919282e12a..5517a4a1c0 100644
> > --- a/builtin/for-each-ref.c
> > +++ b/builtin/for-each-ref.c
> > @@ -98,7 +98,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
> > }
> >
> > if (include_root_refs)
> > - flags |= FILTER_REFS_ROOT_REFS;
> > + flags |= FILTER_REFS_ROOT_REFS | FILTER_REFS_DETACHED_HEAD;
>
> The only issue I see with this patch is that it makes me think that HEAD
> is not a root ref anymore. I get that this is the best way to define the
> directives because otherwise you'd need a new flag something like
> `FILTER_REFS_ROOT_REFS_WITHOUT_HEAD` and `FILTER_REFS_ROOT_REFS` would
> be the summation of that and the HEAD flag.
>
> Apart from this, the patch looks good.
Well, it is a root ref, but we treat it differently in the ref-filter
interface because it's rendered differently than any other root ref.
Furthermore, the ref-filter interfaces allow you to _only_ list the HEAD
ref, which is another reason why it's singled out.
Renaming this to FILTER_REFS_ROOT_REFS_WITHOUT_HEAD ould be quite
misleading, too, because we have the following snippet:
@@ -2794,11 +2796,11 @@ static struct ref_array_item *apply_ref_filter(const char *refname, const struct
/*
* Generally HEAD refs are printed with special description denoting a rebase,
* detached state and so forth. This is useful when only printing the HEAD ref
* But when it is being printed along with other root refs, it makes sense to
* keep the formatting consistent. So we mask the type to act like a root ref.
*/
if (filter->kind & FILTER_REFS_ROOT_REFS && kind == FILTER_REFS_DETACHED_HEAD)
kind = FILTER_REFS_ROOT_REFS;
else if (!(kind & filter->kind))
return NULL;
If we named this FILTER_REFS_ROOT_REFS_WITHOUT_HEAD then the above code
would be even more surprising.
So yeah, it's a bit weird, but I think it's more sensible to retain the
code as proposed.
Patrick
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-05-02 8:08 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-29 13:41 [PATCH 0/3] Clarify pseudo-ref terminology Patrick Steinhardt
2024-04-29 13:41 ` [PATCH 1/3] refs: move `is_special_ref()` Patrick Steinhardt
2024-04-29 13:41 ` [PATCH 2/3] refs: do not label special refs as pseudo refs Patrick Steinhardt
2024-04-29 15:12 ` Phillip Wood
2024-04-30 7:30 ` Patrick Steinhardt
2024-04-30 9:59 ` Phillip Wood
2024-04-30 12:11 ` Patrick Steinhardt
2024-04-30 10:23 ` Jeff King
2024-04-30 12:07 ` Karthik Nayak
2024-04-30 12:33 ` Patrick Steinhardt
2024-04-30 12:16 ` Patrick Steinhardt
2024-04-29 16:24 ` Junio C Hamano
2024-04-29 22:52 ` Justin Tobler
2024-04-30 7:29 ` Patrick Steinhardt
2024-05-09 17:29 ` Jean-Noël AVILA
2024-05-10 8:33 ` Patrick Steinhardt
2024-04-29 13:41 ` [PATCH 3/3] refs: fix segfault in `is_pseudoref()` when ref cannot be resolved Patrick Steinhardt
2024-04-29 15:25 ` Phillip Wood
2024-04-29 18:57 ` Karthik Nayak
2024-04-29 19:47 ` Phillip Wood
2024-04-29 20:44 ` Karthik Nayak
2024-04-30 7:30 ` Patrick Steinhardt
2024-04-30 12:26 ` [PATCH v2 00/10] Clarify pseudo-ref terminology Patrick Steinhardt
2024-04-30 12:26 ` [PATCH v2 01/10] Documentation/glossary: redefine pseudorefs as special refs Patrick Steinhardt
2024-04-30 12:49 ` Karthik Nayak
2024-04-30 17:17 ` Justin Tobler
2024-04-30 20:12 ` Junio C Hamano
2024-05-02 8:07 ` Patrick Steinhardt
2024-04-30 12:26 ` [PATCH v2 02/10] Documentation/glossary: clarify limitations of pseudorefs Patrick Steinhardt
2024-04-30 13:35 ` Kristoffer Haugsbakk
2024-04-30 12:26 ` [PATCH v2 03/10] Documentation/glossary: define root refs as refs Patrick Steinhardt
2024-04-30 12:56 ` Karthik Nayak
2024-04-30 12:26 ` [PATCH v2 04/10] refs: rename `is_pseudoref()` to `is_root_ref()` Patrick Steinhardt
2024-04-30 20:20 ` Junio C Hamano
2024-04-30 12:26 ` [PATCH v2 05/10] refs: refname `is_special_ref()` to `is_pseudo_ref()` Patrick Steinhardt
2024-04-30 12:58 ` Karthik Nayak
2024-04-30 12:26 ` [PATCH v2 06/10] refs: classify HEAD as a root ref Patrick Steinhardt
2024-04-30 12:26 ` [PATCH v2 07/10] refs: root refs can be symbolic refs Patrick Steinhardt
2024-04-30 17:09 ` Justin Tobler
2024-05-02 8:07 ` Patrick Steinhardt
2024-05-03 20:49 ` Justin Tobler
2024-05-07 10:32 ` Patrick Steinhardt
2024-04-30 12:26 ` [PATCH v2 08/10] refs: pseudorefs are no refs Patrick Steinhardt
2024-04-30 12:27 ` [PATCH v2 09/10] ref-filter: properly distinuish pseudo and root refs Patrick Steinhardt
2024-04-30 13:11 ` Karthik Nayak
2024-05-02 8:08 ` Patrick Steinhardt [this message]
2024-05-02 10:03 ` Karthik Nayak
2024-04-30 12:27 ` [PATCH v2 10/10] refs: refuse to write pseudorefs Patrick Steinhardt
2024-05-02 8:17 ` [PATCH v3 00/10] Clarify pseudo-ref terminology Patrick Steinhardt
2024-05-02 8:17 ` [PATCH v3 01/10] Documentation/glossary: redefine pseudorefs as special refs Patrick Steinhardt
2024-05-02 8:17 ` [PATCH v3 02/10] Documentation/glossary: clarify limitations of pseudorefs Patrick Steinhardt
2024-05-02 8:17 ` [PATCH v3 03/10] Documentation/glossary: define root refs as refs Patrick Steinhardt
2024-05-02 8:17 ` [PATCH v3 04/10] refs: rename `is_pseudoref()` to `is_root_ref()` Patrick Steinhardt
2024-05-02 8:17 ` [PATCH v3 05/10] refs: refname `is_special_ref()` to `is_pseudo_ref()` Patrick Steinhardt
2024-05-02 8:17 ` [PATCH v3 06/10] refs: classify HEAD as a root ref Patrick Steinhardt
2024-05-02 8:17 ` [PATCH v3 07/10] refs: root refs can be symbolic refs Patrick Steinhardt
2024-05-03 18:13 ` Jeff King
2024-05-15 4:16 ` Patrick Steinhardt
2024-05-15 4:39 ` Patrick Steinhardt
2024-05-15 6:22 ` Jeff King
2024-05-15 6:35 ` Patrick Steinhardt
2024-05-15 6:49 ` Jeff King
2024-05-15 6:59 ` Patrick Steinhardt
2024-05-15 6:20 ` Jeff King
2024-05-02 8:17 ` [PATCH v3 08/10] refs: pseudorefs are no refs Patrick Steinhardt
2024-05-02 8:17 ` [PATCH v3 09/10] ref-filter: properly distinuish pseudo and root refs Patrick Steinhardt
2024-05-02 8:17 ` [PATCH v3 10/10] refs: refuse to write pseudorefs Patrick Steinhardt
2024-05-10 8:48 ` [PATCH v4 00/10] Clarify pseudo-ref terminology Patrick Steinhardt
2024-05-10 8:48 ` [PATCH v4 01/10] Documentation/glossary: redefine pseudorefs as special refs Patrick Steinhardt
2024-05-10 8:48 ` [PATCH v4 02/10] Documentation/glossary: clarify limitations of pseudorefs Patrick Steinhardt
2024-05-10 8:48 ` [PATCH v4 03/10] Documentation/glossary: define root refs as refs Patrick Steinhardt
2024-05-10 8:48 ` [PATCH v4 04/10] refs: rename `is_pseudoref()` to `is_root_ref()` Patrick Steinhardt
2024-05-10 8:48 ` [PATCH v4 05/10] refs: refname `is_special_ref()` to `is_pseudo_ref()` Patrick Steinhardt
2024-05-10 8:48 ` [PATCH v4 06/10] refs: root refs can be symbolic refs Patrick Steinhardt
2024-05-10 8:48 ` [PATCH v4 07/10] refs: classify HEAD as a root ref Patrick Steinhardt
2024-05-10 8:48 ` [PATCH v4 08/10] refs: pseudorefs are no refs Patrick Steinhardt
2024-05-10 8:48 ` [PATCH v4 09/10] ref-filter: properly distinuish pseudo and root refs Patrick Steinhardt
2024-05-10 8:48 ` [PATCH v4 10/10] refs: refuse to write pseudorefs Patrick Steinhardt
2024-05-10 18:59 ` [PATCH v4 00/10] Clarify pseudo-ref terminology Junio C Hamano
2024-05-15 6:50 ` [PATCH v5 " Patrick Steinhardt
2024-05-15 6:50 ` [PATCH v5 01/10] Documentation/glossary: redefine pseudorefs as special refs Patrick Steinhardt
2024-05-15 6:50 ` [PATCH v5 02/10] Documentation/glossary: clarify limitations of pseudorefs Patrick Steinhardt
2024-05-15 6:50 ` [PATCH v5 03/10] Documentation/glossary: define root refs as refs Patrick Steinhardt
2024-05-15 6:50 ` [PATCH v5 04/10] refs: rename `is_pseudoref()` to `is_root_ref()` Patrick Steinhardt
2024-05-15 6:50 ` [PATCH v5 05/10] refs: rename `is_special_ref()` to `is_pseudo_ref()` Patrick Steinhardt
2024-05-15 6:50 ` [PATCH v5 06/10] refs: do not check ref existence in `is_root_ref()` Patrick Steinhardt
2024-05-15 20:38 ` Justin Tobler
2024-05-16 4:13 ` Patrick Steinhardt
2024-05-15 6:50 ` [PATCH v5 07/10] refs: classify HEAD as a root ref Patrick Steinhardt
2024-05-15 20:44 ` Justin Tobler
2024-05-15 6:51 ` [PATCH v5 08/10] refs: pseudorefs are no refs Patrick Steinhardt
2024-05-15 6:51 ` [PATCH v5 09/10] ref-filter: properly distinuish pseudo and root refs Patrick Steinhardt
2024-05-15 6:51 ` [PATCH v5 10/10] refs: refuse to write pseudorefs Patrick Steinhardt
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=ZjNJ5EPMYxLi1QR0@tanuki \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jltobler@gmail.com \
--cc=karthik.188@gmail.com \
--cc=peff@peff.net \
--cc=phillip.wood123@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).