git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Query for certain branches, but not the rest
@ 2012-11-25  9:24 Felipe Contreras
  2012-11-28  1:57 ` Jeff King
  0 siblings, 1 reply; 2+ messages in thread
From: Felipe Contreras @ 2012-11-25  9:24 UTC (permalink / raw)
  To: git

Hi,

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?

It appears this works:

% git for-each-ref refs/heads/*

But I would like something parsable by rev-parse.

Any ideas?

Cheers.

-- 
Felipe Contreras

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Query for certain branches, but not the rest
  2012-11-25  9:24 Query for certain branches, but not the rest Felipe Contreras
@ 2012-11-28  1:57 ` Jeff King
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff King @ 2012-11-28  1:57 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: git

On Sun, Nov 25, 2012 at 10:24:59AM +0100, Felipe Contreras wrote:

> 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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-11-28  1:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-25  9:24 Query for certain branches, but not the rest Felipe Contreras
2012-11-28  1:57 ` Jeff King

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).