From: Michael J Gruber <git@drmicha.warpmail.net>
To: Michael Schubert <mschub@elegosoft.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
Jeff King <peff@peff.net>
Subject: Re: [PATCHv3 5/5] branch: allow pattern arguments
Date: Tue, 06 Sep 2011 16:21:35 +0200 [thread overview]
Message-ID: <4E662C6F.7000205@drmicha.warpmail.net> (raw)
In-Reply-To: <4E661BDE.1080204@elegosoft.com>
Michael Schubert venit, vidit, dixit 06.09.2011 15:10:
> On 08/28/2011 04:54 PM, Michael J Gruber wrote:
>> +static int match_patterns(const char **pattern, const char *refname)
>> +{
>> + if (!*pattern)
>> + return 1; /* no pattern always matches */
>> + while (*pattern) {
>> + if (!fnmatch(*pattern, refname, 0))
>> + return 1;
>> + pattern++;
>> + }
>> + return 0;
>> +}
>
> Nitpick: maybe builtin/branch.c and builtin/tag.c could share match_pattern().?
I think all commands which list refs should share code - for-each-ref,
branch, tag, replace. I suggest to unify log and for-each-ref-formats
first, the unify ref listers.
> A second thought: the printed "remotes/" prefix could be confusing for users,
> since it seems to be part of the refname. For example:
>
> $ git branch -a
> * master
> maint
> man
> remotes/origin/master
> remotes/origin/maint
> remotes/origin/man
>
> $ git branch -a --list remotes/origin*
> [no output]
>
> but
>
> $ git branch -a --list origin*
> remotes/origin/master
> remotes/origin/maint
> remotes/origin/man
>
> (Sorry in case I missed that) What's the reason you decided --list to show local
> branches only? Maybe --list could show all refnames without any extra prefix.?
I didn't decide anything here. "git branch" lists all local branches and
has been doing that forever, and "--list" is and should be a noop
without a pattern. That was the idea: -r/-a select refnames,
--list/-v/-vv activate the list mode(s), and the pattern is matched
against the selected refs.
(This is one reason why I didn't want it to be named --glob - the
pattern is a filter, not a selector.)
That being said, I find the fact that "-a --list remotes/origin/*" does
not match anything somewhat disconcerting, although it fits in with the
general idea of "git branch": it deals with branch names, not ref names.
Have you ever tried to delete a remote branch?
git branch -r -d origin/maint # workee
git branch -r -d remotes/origin/maint # no workee
Without -r, it doesn't work either.
So, the way it is it fits in with how "git branch" works, and is
different from for-each-ref (and rev-list --glob). I don't like it,
because you may have a local branch origin/maint (i.e.
refs/heads/origin/maint) which you can't distinguish from the remote
branch by a pattern, only by using or not using -r. But it's the same as
with "git branch -d", really.
Michael
next prev parent reply other threads:[~2011-09-06 14:21 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-02 17:17 [RFC] branch: list branches by single remote Michael Schubert
2011-08-04 4:06 ` Jeff King
2011-08-16 13:37 ` Michael J Gruber
2011-08-16 14:19 ` Michael Schubert
2011-08-16 15:14 ` Jeff King
2011-08-24 15:14 ` Michael Schubert
2011-08-24 15:37 ` Michael J Gruber
2011-08-24 16:02 ` Michael Schubert
2011-08-24 18:34 ` Junio C Hamano
2011-08-25 2:31 ` Thiago Farina
2011-08-25 18:02 ` Junio C Hamano
2011-08-25 8:29 ` Michael J Gruber
2011-08-25 8:30 ` [PATCH 0/5] RFC: patterns for branch list Michael J Gruber
2011-08-25 8:30 ` [PATCH 1/5] branch: allow pattern arguments Michael J Gruber
2011-08-25 17:54 ` Jeff King
2011-08-25 18:32 ` Junio C Hamano
2011-08-25 19:29 ` Junio C Hamano
2011-08-25 8:30 ` [PATCH 2/5] branch: introduce --list argument Michael J Gruber
2011-08-25 18:34 ` Junio C Hamano
2011-08-25 19:52 ` Junio C Hamano
2011-08-25 8:30 ` [PATCH 3/5] t6040; test branch -vv Michael J Gruber
2011-08-25 8:30 ` [PATCH 4/5] branch: restructure -v vs. -vv Michael J Gruber
2011-08-25 19:02 ` Junio C Hamano
2011-08-25 8:30 ` [PATCH 5/5] branch: give patchsame count with -vvv Michael J Gruber
2011-08-25 17:53 ` [PATCH 0/5] RFC: patterns for branch list Jeff King
2011-08-26 8:30 ` Michael J Gruber
2011-08-26 16:55 ` Junio C Hamano
2011-09-07 19:53 ` Jeff King
2011-09-08 9:20 ` Michael J Gruber
2011-08-26 14:05 ` [PATCHv2 0/5] " Michael J Gruber
2011-08-26 14:05 ` [PATCHv2 1/5] t6040: test branch -vv Michael J Gruber
2011-08-26 14:05 ` [PATCHv2 2/5] git-tag: introduce long forms for the options Michael J Gruber
2011-08-26 17:11 ` Junio C Hamano
2011-08-28 14:03 ` Michael J Gruber
2011-08-26 14:05 ` [PATCHv2 3/5] git-branch: introduce missing " Michael J Gruber
2011-08-26 17:13 ` Junio C Hamano
2011-08-28 14:05 ` Michael J Gruber
2011-08-26 14:05 ` [PATCHv2 4/5] branch: introduce --list option Michael J Gruber
2011-08-26 17:43 ` Junio C Hamano
2011-08-28 14:37 ` Michael J Gruber
2011-09-07 19:56 ` Jeff King
2011-09-08 9:24 ` Michael J Gruber
2011-09-08 14:25 ` [PATCHv4 0/5] mg/branch-list amendment Michael J Gruber
2011-09-08 14:25 ` [PATCHv4 4/5] branch: introduce --list option Michael J Gruber
2011-09-08 14:25 ` [PATCHv4 5/5] branch: allow pattern arguments Michael J Gruber
2011-09-08 21:03 ` [PATCHv2 4/5] branch: introduce --list option Junio C Hamano
2011-09-08 21:11 ` Jeff King
2011-09-08 21:17 ` Junio C Hamano
2011-09-09 1:08 ` Jeff King
2011-09-09 6:54 ` Michael J Gruber
2011-09-09 16:02 ` Junio C Hamano
2011-09-09 19:29 ` Michael J Gruber
2011-09-09 19:30 ` Jeff King
2011-09-09 19:40 ` [PATCH] t3200: test branch creation with -v Michael J Gruber
2011-09-09 19:43 ` Jeff King
2011-09-09 19:45 ` Jeff King
2011-09-10 13:29 ` Michael J Gruber
2011-09-13 3:57 ` Jeff King
2011-09-13 12:12 ` Michael J Gruber
2011-09-13 16:13 ` [PATCH] t3200: clean up checks for file existence Jeff King
2011-09-13 17:13 ` Junio C Hamano
2011-09-13 17:16 ` Jeff King
2011-08-26 14:05 ` [PATCHv2 5/5] branch: allow pattern arguments Michael J Gruber
2011-08-26 18:45 ` Junio C Hamano
2011-08-28 14:54 ` [PATCHv3 0/5] patterns for branch list Michael J Gruber
2011-08-28 14:54 ` [PATCHv3 1/5] t6040: test branch -vv Michael J Gruber
2011-08-28 14:54 ` [PATCHv3 2/5] git-tag: introduce long forms for the options Michael J Gruber
2011-08-28 14:54 ` [PATCHv3 3/5] git-branch: introduce missing " Michael J Gruber
2011-08-28 14:54 ` [PATCHv3 4/5] branch: introduce --list option Michael J Gruber
2011-08-29 5:55 ` Junio C Hamano
2011-08-29 6:35 ` Michael J Gruber
2011-08-29 6:51 ` Junio C Hamano
2011-08-28 14:54 ` [PATCHv3 5/5] branch: allow pattern arguments Michael J Gruber
2011-09-06 13:10 ` Michael Schubert
2011-09-06 14:21 ` Michael J Gruber [this message]
2011-09-06 14:26 ` Sverre Rabbelier
2011-09-06 16:11 ` Michael J Gruber
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=4E662C6F.7000205@drmicha.warpmail.net \
--to=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=mschub@elegosoft.com \
--cc=peff@peff.net \
/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.