git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Taylor Blau <me@ttaylorr.com>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	git@vger.kernel.org, ps@pks.im, christian.couder@gmail.com
Subject: Re: [PATCH 2/2] ref-filter: support filtering of operational refs
Date: Tue, 2 Jan 2024 13:47:22 -0500	[thread overview]
Message-ID: <ZZRaOhK869S1Sg1h@nand.local> (raw)
In-Reply-To: <CAOLa=ZTPxWXnZ8kpBB7=cybNfdEv6d6O37Em7Vpmcw=enpY1_w@mail.gmail.com>

On Tue, Jan 02, 2024 at 07:18:48AM -0800, Karthik Nayak wrote:
> > As "git for-each-ref" takes pattern that is prefix match, e.g.,
> >
> >     $ git for-each-ref refs/remotes/
> >
> > shows everything like refs/remotes/origin/main that begins with
> > refs/remotes/, I wonder if
> >
> >     $ git for-each-ref ""
> >
> > should mean what you are asking for.  After all, "git for-each-ref"
> > does *not* take "--branches" and others like "git log" family to
> > limit its operation to subhierarchy of "refs/" to begin with.
>
> But I don't think using an empty pattern is the best way to go forward.
> This would break the pattern matching feature. For instance, what if the
> user wanted to print all refs, but pattern match "*_HEAD"?
>
> Would that be
>
>       $ git for-each-ref "" "*_HEAD"
>
> I think this would be confusing, since the first pattern is now acting
> as an option, since its not really filtering rather its changing the
> search space.
>
> Maybe "--all-refs" or "--all-ref-types" instead?

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.

Thanks,
Taylor

  parent reply	other threads:[~2024-01-02 18:47 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 [this message]
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
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=ZZRaOhK869S1Sg1h@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 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).