From: Mirko Faina <mroik@delayed.space>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org, "Junio C Hamano" <gitster@pobox.com>,
"Patrick Steinhardt" <ps@pks.im>,
"Jean-Noël Avila" <jn.avila@free.fr>,
"Mirko Faina" <mroik@delayed.space>
Subject: Re: [PATCH] revision.c: implement --reverse=before for walks
Date: Mon, 20 Apr 2026 11:22:09 +0200 [thread overview]
Message-ID: <aeXvuuhjTmHyumGq@exploit> (raw)
In-Reply-To: <20260420000440.GA1238475@coredump.intra.peff.net>
On Sun, Apr 19, 2026 at 08:04:40PM -0400, Jeff King wrote:
> On Sat, Apr 18, 2026 at 06:47:35PM +0200, Mirko Faina wrote:
>
> > @@ -2685,8 +2685,26 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
> > else
> > git_log_output_encoding = xstrdup("");
> > return argcount;
> > - } else if (!strcmp(arg, "--reverse")) {
> > - revs->reverse ^= 1;
> > + } else if (starts_with(arg, "--reverse")) {
> > + if (!skip_prefix(arg, "--reverse=", &optarg)) {
> > + if (argc < 2) {
> > + revs->reverse = 1;
> > + return 1;
> > + } else {
> > + optarg = argv[1];
> > + }
> > + }
>
> It looks like you're trying to support "--reverse after" here, but don't
> do that. Flags with optional arguments must use the "stuck" form,
> "--reverse=after", which is covered in the "gitcli" manpage.
Oh I see, I thought I had to parse both ways. If I just have to allow
for the stuck form then it becomes way easier to deal with.
> That's to prevent "--reverse --foo" from being ambiguous. It looks like
> you try to limit that with the final "else" here:
>
> > +
> > + if (!strcmp(optarg, "after")) {
> > + revs->reverse = 1;
> > + } else if (!strcmp(optarg, "before")) {
> > + revs->reverse = 2;
> > + } else {
> > + revs->reverse = 1;
> > + return 1;
> > + }
>
> but that just makes things more complicated:
>
> - doing "git log --reverse=bogus" is silently accepted
>
> - trying to show a branch named "after" with "git log --reverse after"
> has changed meanings
>
> So I think you really just want to handle "--reverse=" separately from
> "--reverse", and the latter should behave as it always has.
>
> -Peff
Thanks you
next prev parent reply other threads:[~2026-04-20 9:22 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-18 16:47 [PATCH] revision.c: implement --reverse=before for walks Mirko Faina
2026-04-18 18:20 ` Tian Yuchen
2026-04-18 18:42 ` Mirko Faina
2026-04-18 18:51 ` Mirko Faina
2026-04-20 16:06 ` Junio C Hamano
2026-04-20 17:08 ` Tian Yuchen
2026-04-20 23:50 ` Mirko Faina
2026-04-19 12:06 ` Ben Knoble
2026-04-19 18:11 ` Mirko Faina
2026-04-19 19:12 ` D. Ben Knoble
2026-04-19 20:31 ` Mirko Faina
2026-04-20 0:21 ` Jeff King
2026-04-20 9:33 ` Mirko Faina
2026-04-20 10:30 ` Mirko Faina
2026-04-21 3:48 ` Jeff King
2026-04-22 18:24 ` D. Ben Knoble
2026-04-22 19:42 ` Mirko Faina
2026-04-20 0:04 ` Jeff King
2026-04-20 9:22 ` Mirko Faina [this message]
2026-04-22 0:28 ` [PATCH v2 0/2] " Mirko Faina
2026-04-22 0:30 ` Mirko Faina
2026-04-23 22:51 ` [PATCH v3 " Mirko Faina
2026-04-23 22:51 ` [PATCH v3 1/2] " Mirko Faina
2026-04-28 1:45 ` Junio C Hamano
2026-04-23 22:52 ` [PATCH v3 2/2] revision.c: reduce memory usage on reverse before Mirko Faina
2026-04-27 0:24 ` [PATCH v4 0/2] revision.c: implement --reverse=before for walks Mirko Faina
2026-04-27 0:24 ` [PATCH v4 1/2] " Mirko Faina
2026-04-27 6:45 ` Junio C Hamano
2026-04-27 7:33 ` Johannes Sixt
2026-04-27 12:30 ` Junio C Hamano
2026-04-27 13:58 ` Chris Torek
2026-04-27 16:48 ` [PATCH v4 1/2] revision.c: implement -b-reverse=before " Mirko Faina
2026-04-28 1:46 ` Junio C Hamano
2026-04-28 1:45 ` [PATCH v4 1/2] revision.c: implement --reverse=before " Junio C Hamano
2026-04-27 0:24 ` [PATCH v4 2/2] revision.c: reduce memory usage on reverse before Mirko Faina
2026-04-28 1:46 ` Junio C Hamano
2026-04-30 19:52 ` [PATCH v5] revision.c: implement --max-count-oldest Mirko Faina
2026-05-04 5:19 ` Junio C Hamano
2026-05-04 13:08 ` Mirko Faina
2026-05-05 21:54 ` [PATCH v6] " Mirko Faina
2026-05-06 6:45 ` Johannes Sixt
2026-05-06 12:54 ` Mirko Faina
2026-05-07 9:20 ` Junio C Hamano
2026-05-08 0:09 ` Mirko Faina
2026-05-09 12:46 ` Jean-Noël AVILA
2026-05-10 0:41 ` Mirko Faina
2026-05-09 21:01 ` Junio C Hamano
2026-05-10 0:48 ` Mirko Faina
2026-05-09 11:01 ` [PATCH v5] " Junio C Hamano
2026-05-10 0:36 ` Mirko Faina
2026-04-22 0:28 ` [PATCH v2 1/2] revision.c: implement --reverse=before for walks Mirko Faina
2026-04-22 22:44 ` Jeff King
2026-04-22 22:53 ` Mirko Faina
2026-04-22 0:28 ` [PATCH v2 2/2] revision.c: reduce memory usage on reverse before Mirko Faina
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=aeXvuuhjTmHyumGq@exploit \
--to=mroik@delayed.space \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jn.avila@free.fr \
--cc=peff@peff.net \
--cc=ps@pks.im \
/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.