From: Taylor Blau <me@ttaylorr.com>
To: Patrick Steinhardt <ps@pks.im>
Cc: Karthik Nayak <karthik.188@gmail.com>,
Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org, christian.couder@gmail.com
Subject: Re: [PATCH 2/2] ref-filter: support filtering of operational refs
Date: Wed, 3 Jan 2024 12:00:55 -0500 [thread overview]
Message-ID: <ZZWSxyv4QxSPQOSd@nand.local> (raw)
In-Reply-To: <ZZWCxIHf9ySEOWEJ@tanuki>
On Wed, Jan 03, 2024 at 04:52:36PM +0100, Patrick Steinhardt wrote:
> On Wed, Jan 03, 2024 at 10:45:49AM -0500, Taylor Blau wrote:
> > On Wed, Jan 03, 2024 at 09:52:33AM +0100, Patrick Steinhardt wrote:
> > > > I tend to agree that the special empty pattern would be a good shorthand
> > > > for listing all references underneath refs/, including any top-level
> > > > psuedo-refs.
> > > >
> > > > But I don't think that I quite follow what Karthik is saying here.
> > > > for-each-ref returns the union of references that match the given
> > > > pattern(s), not their intersection. So if you wanted to list just the
> > > > psudo-refs ending in '_HEAD', you'd do:
> > > >
> > > > $ git for-each-ref "*_HEAD"
> > > >
> > > > I think if you wanted to list all pseudo-refs, calling the option
> > > > `--pseudo-refs` seems reasonable. But if you want to list some subset of
> > > > psueod-refs matching a given pattern, you should specify that pattern
> > > > directly.
> > >
> > > Where I think this proposal falls short is if you have refs outside of
> > > the "refs/" hierarchy. Granted, this is nothing that should usually
> > > happen nowadays. But I think we should safeguard us for the future:
> >
> > Hmm. Maybe I misspoke, but I was thinking that `--pseudo-refs` would
> > imply that we list all references (regardless of whether they appear in
> > the top-level refs/ hierarchy). But perhaps I'm misunderstanding what
> > you're trying to accomplish here.
>
> Ah, okay. I think in that case it's simply a misunderstanding. To me a
> pseudo-ref only includes refs that match `is_pseudoref_syntax()`, so
> things like "HEAD", "ORIG_HEAD" or "MERGE_HEAD". So with that
> understanding, a ref "something/outside/refs" would not be included,
> but I'd very much like to see it listed.
OK, I see: you're trying to add an option that lists all references
(including those outside of the top-level "refs/" hierarchy). But my
proposal to use `--pseudo-refs` was to list *just* those references
outside of the top-level hierarchy.
I wonder if we might want to do something else entirely, which is an
option which controls the top-level "namespace" of references that we
want to see. The behavior would then be to list all references under
"namespace" (which presumably would be "refs/" by default).
If you want to list references like something/outside/refs, your
namespace would then be --namespace="".
I think that this would be a bit more flexible than the current
suggestions, but I am also not as familiar as you are at this particular
problem :-).
Thanks,
Taylor
next prev parent reply other threads:[~2024-01-03 17:00 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-21 17:07 [RFC 0/2] Initial changes to support printing all refs Karthik Nayak
2023-12-21 17:07 ` [PATCH 1/2] refs: introduce the `refs_single_ref` function Karthik Nayak
2023-12-21 17:07 ` [PATCH 2/2] ref-filter: support filtering of operational refs Karthik Nayak
2023-12-21 20:40 ` Junio C Hamano
2023-12-22 14:05 ` Karthik Nayak
2023-12-26 17:01 ` Junio C Hamano
2024-01-02 15:18 ` Karthik Nayak
2024-01-02 16:49 ` Junio C Hamano
2024-01-02 18:47 ` Taylor Blau
2024-01-03 8:52 ` Patrick Steinhardt
2024-01-03 10:22 ` Karthik Nayak
2024-01-03 14:38 ` Junio C Hamano
2024-01-03 15:50 ` Patrick Steinhardt
2024-01-03 16:02 ` Junio C Hamano
2024-01-03 16:17 ` Patrick Steinhardt
2024-01-03 17:21 ` Junio C Hamano
2024-01-03 17:36 ` Patrick Steinhardt
2024-01-03 17:59 ` Junio C Hamano
2024-01-03 18:01 ` Patrick Steinhardt
2024-01-04 11:31 ` Karthik Nayak
2024-01-04 23:59 ` Junio C Hamano
2024-01-03 15:45 ` Taylor Blau
2024-01-03 15:52 ` Patrick Steinhardt
2024-01-03 17:00 ` Taylor Blau [this message]
2023-12-28 10:34 ` Patrick Steinhardt
2024-01-02 15:23 ` Karthik Nayak
2024-01-02 18:49 ` Taylor Blau
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=ZZWSxyv4QxSPQOSd@nand.local \
--to=me@ttaylorr.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=karthik.188@gmail.com \
--cc=ps@pks.im \
/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.