git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Query for certain branches, but not the rest

From
Jeff King <peff@peff.net>
Date
Nov 28, 2012, 01:57 UTC
Message-ID
<20121128015714.GB23776@sigill.intra.peff.net>
In-Reply-To
<CAMP44s02=E3imOv00dwyXR13nQdo1XeZTjJb_y0EVQoyYMEcQw@mail.gmail.com>
On Sun, Nov 25, 2012 at 10:24:59AM +0100, Felipe Contreras wrote:
Show 13 quoted lines
> Suppose I have these branches:
> 
>   fc/feature-a
>   fc/feature-b
>   master
>   next
> 
> I want to show this: fc/feature-a fc/feature-b ^master ^next. I can do
> 'git log --branches=fc' to show the branches that begin with fc/, but
> there's no way to specify the rest. If they were under a prefix, I
> could do '--not --branches=prefix', but they are not.
> 
> Anybody knows a way to query branches that don't have any prefix?

I don't think there is a way. `--branches` can take a pattern (and there is always `--glob`), but we do not pass FNM_PATHNAME to fnmatch, so "*" will match across `/` boundaries.

You are stuck with:
  git log --branches=fc --not $(
    git for-each-ref --format='%(refname:short)' refs/heads |
    grep -v /
  )

which is at least robust due to the restrictions on refnames (i.e., no whitespace).

As an aside, I noticed that:
  git log --branches=does-not-exist

will see that we matched no refs and fall back to showing HEAD. That seems a bit surprising to me.

-Peff
Previous: Felipe Contreras
Message 2 of 2 in “Query for certain branches, but not the rest”
  1. Felipe ContrerasNov 25, 2012
  2. Jeff KingNov 28, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.