threads / discuss / 55474

question re: git show-ref and matching ref patterns from the front

Subject: question re: git show-ref and matching ref patterns from the front

## tl;dr

3 messages between Apr 11, 2021 and Apr 11, 2021.

replies: 2people: 2as markdown or json

Chris Jerdonek· Apr 11, 2021, 01:24 UTC · lore

Hi, I noticed that git-show-ref only seems to permit matching patterns from the end of a ref name: https://git-scm.com/docs/git-show-ref#Documentation/git-show-ref.txt-ltpatterngt82308203 For example, "git show-ref master" will include both "refs/heads/master" and "refs/remotes/origin/master".

However, is there a way to limit Git to showing refs starting with a prefix, and that doesn't also require Git to iterate over all refs?

It seems like that would be natural and useful e.g. for repos with many refs and/or repos with namespaces. Am I missing something, or would that be a useful addition?

Thanks, --Chris

brian m. carlson· Apr 11, 2021, 01:54 UTC · re: Chris Jerdonek · lore

Re: question re: git show-ref and matching ref patterns from the front

On 2021-04-11 at 01:24:57, Chris Jerdonek wrote:
Show 12 quoted lines
> Hi, I noticed that git-show-ref only seems to permit matching patterns
> from the end of a ref name:
> https://git-scm.com/docs/git-show-ref#Documentation/git-show-ref.txt-ltpatterngt82308203
> For example, "git show-ref master" will include both
> "refs/heads/master" and "refs/remotes/origin/master".
> 
> However, is there a way to limit Git to showing refs starting with a
> prefix, and that doesn't also require Git to iterate over all refs?
> 
> It seems like that would be natural and useful e.g. for repos with
> many refs and/or repos with namespaces. Am I missing something, or
> would that be a useful addition?

I believe you can do this with git for-each-ref. It accepts prefixes, and assuming you don't use a case-insensitive comparison, it will restrict itself to iterating over only those prefixes you specify, not all refs.

-- 
brian m. carlson (he/him or they/them)
Houston, Texas, US
Chris Jerdonek· Apr 11, 2021, 02:09 UTC · re: brian m. carlson · lore

Re: question re: git show-ref and matching ref patterns from the front

On Sat, Apr 10, 2021 at 6:54 PM brian m. carlson <sandals@crustytoothpaste.net> wrote:

Show 9 quoted lines
>
> On 2021-04-11 at 01:24:57, Chris Jerdonek wrote:
> > However, is there a way to limit Git to showing refs starting with a
> > prefix, and that doesn't also require Git to iterate over all refs?
>
> I believe you can do this with git for-each-ref.  It accepts prefixes,
> and assuming you don't use a case-insensitive comparison, it will
> restrict itself to iterating over only those prefixes you specify, not
> all refs.

Thanks. One minor difference, though, seems to be that git for-each-ref doesn't support including the HEAD ref, which you can do with git-show-ref by passing ---head.

--Chris

← back to recent threads