Re: [PATCH] revision: add --except option
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- Aug 30, 2013, 07:24 UTC
- Message-ID
- <CAMP44s2n8k8ZXYde_+-X3qtiWNAcYKOgqTD0NY-cuuMwmPrhzQ@mail.gmail.com>
- In-Reply-To
- <522045A1.3040409@viscovery.net>
On Fri, Aug 30, 2013 at 2:11 AM, Johannes Sixt <j.sixt@viscovery.net> wrote:
Show 29 quoted lines
> Am 8/30/2013 7:00, schrieb Felipe Contreras: >> So that it's possible to remove certain refs from the list without >> removing the objects that are referenced by other refs. >> >> For example this repository: >> >> * 374e8dd (crap) crap >> * 4cbbf7b (test) two >> * d025ae0 (HEAD, master) one >> >> When using '--branches --except crap': >> >> * 4cbbf7b (test) two >> * d025ae0 (HEAD, master) one >> >> But when using '--branches --not crap' nothing will come out. > > I like the idea to be able to exclude refs from listings. My use-case is > the following: > > To unclutter 'git branch' output, I rename work-in-progress branches to > begin with "wip/", ready-to-merge branches do not carry this prefix. To > inspect unmerged work of the latter kind of branches I would like to > type... what? > > gitk --branches --except --branches=wip --not master > gitk --branches --not master --except --branches=wip > > Would one of these work with your current patch?
The first one should work, but mostly by accident. A proper fix is not far though:
diff --git a/revision.c b/revision.c index 25564c1..1380cd1 100644 --- a/revision.c +++ b/revision.c @@ -1983,9 +1983,9 @@ static int handle_revision_pseudo_opt(const char *submodule, } else if (!strcmp(arg, "--reflog")) { handle_reflog(revs, *flags); } else if (!strcmp(arg, "--not")) { - *flags ^= UNINTERESTING | BOTTOM; + *flags = UNINTERESTING | BOTTOM; } else if (!strcmp(arg, "--except")) { - *flags ^= SKIP; + *flags = SKIP; } else if (!strcmp(arg, "--no-walk")) { revs->no_walk = REVISION_WALK_NO_WALK_SORTED; } else if (!prefixcmp(arg, "--no-walk=")) { Then both should work.
-- Felipe Contreras