From: Taylor Blau <me@ttaylorr.com>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org, jacob@initialcommit.io, gitster@pobox.com
Subject: Re: [PATCH 4/7] shortlog: support arbitrary commit format `--group`s
Date: Thu, 20 Oct 2022 22:39:54 -0400 [thread overview]
Message-ID: <Y1IGeuudJj18sDPz@nand.local> (raw)
In-Reply-To: <Y0TOpVF+Y70YJHzx@coredump.intra.peff.net>
On Mon, Oct 10, 2022 at 10:02:13PM -0400, Jeff King wrote:
> > > - since the multiple-option behavior is so subtle, maybe show a case
> > > where two formats partially overlap. A plausible one is "--group=%aN
> > > --group=%cN", but the test setup might need tweaked to cover both.
> > > There's an existing "multiple groups" test that might come in handy.
> >
> > Interesting. I was starting to write that test up, but then realized
> > that this will be covered by the end of the series, since the
> > `--group=trailer` machinery is reimplemented in terms of the new format
> > group.
>
> True, if we follow through on that. ;)
So, obviously we ended up not following through on that ;-).
I tried to leverage the existing test as much as possible, to the point
that the new test is pretty hacky. But I think that the result is cute,
and it does save us from having to modify the downstream tests (or
create unreachable commits, initialize another repository, etc).
It looks something like this:
--- 8< ---
diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh
index 0abe5354fc..566d581e1b 100755
--- a/t/t4201-shortlog.sh
+++ b/t/t4201-shortlog.sh
@@ -356,6 +356,19 @@ test_expect_success 'shortlog can match multiple groups' '
test_cmp expect actual
'
+test_expect_success 'shortlog can match multiple format groups' '
+ cat >expect <<-\EOF &&
+ 2 User B <b@example.com>
+ 1 A U Thor <author@example.com>
+ 1 User A <a@example.com>
+ EOF
+ git shortlog -ns \
+ --group="%(trailers:valueonly,separator=%0x00,key=some-trailer)" \
+ --group="%(trailers:valueonly,separator=%0x00,key=another-trailer)" \
+ -2 HEAD >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'set up option selection tests' '
git commit --allow-empty -F - <<-\EOF
subject
--- >8 ---
The gross bit there really is the 'separator=%0x00' thing, since the
"trailers" pretty format gives us a NL character already. I suppose that
you could do something like this on top instead:
--- >8 ---
diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh
index 566d581e1b..13ac0bac64 100755
--- a/t/t4201-shortlog.sh
+++ b/t/t4201-shortlog.sh
@@ -363,9 +363,10 @@ test_expect_success 'shortlog can match multiple format groups' '
1 User A <a@example.com>
EOF
git shortlog -ns \
- --group="%(trailers:valueonly,separator=%0x00,key=some-trailer)" \
- --group="%(trailers:valueonly,separator=%0x00,key=another-trailer)" \
- -2 HEAD >actual &&
+ --group="%(trailers:valueonly,key=some-trailer)" \
+ --group="%(trailers:valueonly,key=another-trailer)" \
+ -2 HEAD >actual.raw &&
+ grep -v "^$" actual.raw >actual &&
test_cmp expect actual
'
--- 8< ---
which I think I prefer slightly.
If this is all too hacky for your (or anybody's!) taste, let me know.
But I think ultimately this results in a smaller, more easily digestible
diff overall.
Thanks,
Taylor
next prev parent reply other threads:[~2022-10-21 2:40 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-11 0:33 [PATCH 0/7] shortlog: introduce `--group=<format>` Taylor Blau
2022-10-11 0:34 ` [PATCH 1/7] Documentation: extract date-options.txt Taylor Blau
2022-10-11 0:54 ` Jeff King
2022-10-11 1:02 ` Taylor Blau
2022-10-11 0:34 ` [PATCH 2/7] shortlog: accept `--date`-related options Taylor Blau
2022-10-11 0:48 ` Jeff King
2022-10-11 1:14 ` Taylor Blau
2022-10-11 0:34 ` [PATCH 3/7] shortlog: extract `--group` fragment for translation Taylor Blau
2022-10-11 10:55 ` Ævar Arnfjörð Bjarmason
2022-10-11 13:24 ` Jeff King
2022-10-11 0:34 ` [PATCH 4/7] shortlog: support arbitrary commit format `--group`s Taylor Blau
2022-10-11 1:12 ` Jeff King
2022-10-11 1:24 ` Taylor Blau
2022-10-11 1:28 ` Taylor Blau
2022-10-11 2:03 ` Jeff King
2022-10-11 2:02 ` Jeff King
2022-10-21 2:39 ` Taylor Blau [this message]
2022-10-21 5:21 ` Jeff King
2022-10-21 22:12 ` Taylor Blau
2022-10-11 0:34 ` [PATCH 5/7] shortlog: implement `--group=author` in terms of `--group=<format>` Taylor Blau
2022-10-11 1:34 ` Jeff King
2022-10-11 1:48 ` Taylor Blau
2022-10-11 2:15 ` Jeff King
2022-10-21 2:03 ` Taylor Blau
2022-10-21 2:02 ` Taylor Blau
2022-10-21 5:03 ` Jeff King
2022-10-21 22:05 ` Taylor Blau
2022-10-11 10:57 ` Ævar Arnfjörð Bjarmason
2022-10-11 11:07 ` Ævar Arnfjörð Bjarmason
2022-10-11 0:34 ` [PATCH 6/7] shortlog: implement `--group=committer` " Taylor Blau
2022-10-11 1:35 ` Jeff King
2022-10-11 0:34 ` [PATCH 7/7] shortlog: implement `--group=trailer` " Taylor Blau
2022-10-11 1:50 ` Jeff King
2022-10-11 1:57 ` Jeff King
2022-10-21 1:38 ` Taylor Blau
2022-10-21 3:11 ` [PATCH v2 0/6] shortlog: introduce `--group=<format>` Taylor Blau
2022-10-21 3:11 ` [PATCH v2 1/6] shortlog: accept `--date`-related options Taylor Blau
2022-10-21 5:32 ` Jeff King
2022-10-21 21:55 ` Taylor Blau
2022-10-21 3:11 ` [PATCH v2 2/6] shortlog: make trailer insertion a noop when appropriate Taylor Blau
2022-10-21 5:38 ` Jeff King
2022-10-21 21:57 ` Taylor Blau
2022-10-21 3:11 ` [PATCH v2 3/6] shortlog: extract `--group` fragment for translation Taylor Blau
2022-10-21 5:40 ` Jeff King
2022-10-21 3:11 ` [PATCH v2 4/6] shortlog: support arbitrary commit format `--group`s Taylor Blau
2022-10-21 5:48 ` Jeff King
2022-10-21 22:07 ` Taylor Blau
2022-10-21 3:11 ` [PATCH v2 5/6] shortlog: implement `--group=author` in terms of `--group=<format>` Taylor Blau
2022-10-21 5:50 ` Jeff King
2022-10-21 3:11 ` [PATCH v2 6/6] shortlog: implement `--group=committer` " Taylor Blau
2022-10-21 5:51 ` Jeff King
2022-10-21 5:53 ` [PATCH v2 0/6] shortlog: introduce `--group=<format>` Jeff King
2022-10-21 22:25 ` [PATCH v3 0/7] " Taylor Blau
2022-10-21 22:25 ` [PATCH v3 1/7] shortlog: accept `--date`-related options Taylor Blau
2022-10-21 22:25 ` [PATCH v3 2/7] shortlog: make trailer insertion a noop when appropriate Taylor Blau
2022-10-21 22:25 ` [PATCH v3 3/7] shortlog: extract `--group` fragment for translation Taylor Blau
2022-10-21 22:25 ` [PATCH v3 4/7] shortlog: support arbitrary commit format `--group`s Taylor Blau
2022-10-22 0:28 ` Jeff King
2022-10-21 22:25 ` [PATCH v3 5/7] shortlog: extract `shortlog_finish_setup()` Taylor Blau
2022-10-21 22:25 ` [PATCH v3 6/7] shortlog: implement `--group=author` in terms of `--group=<format>` Taylor Blau
2022-10-21 22:25 ` [PATCH v3 7/7] shortlog: implement `--group=committer` " Taylor Blau
2022-10-22 0:31 ` [PATCH v3 0/7] shortlog: introduce `--group=<format>` Jeff King
2022-10-24 18:55 ` [PATCH " Taylor Blau
2022-10-24 18:55 ` [PATCH 1/7] shortlog: accept `--date`-related options Taylor Blau
2022-10-24 18:55 ` [PATCH 2/7] shortlog: make trailer insertion a noop when appropriate Taylor Blau
2022-10-24 18:55 ` [PATCH 3/7] shortlog: extract `--group` fragment for translation Taylor Blau
2022-10-24 18:55 ` [PATCH 4/7] shortlog: support arbitrary commit format `--group`s Taylor Blau
2022-10-24 18:55 ` [PATCH 5/7] shortlog: extract `shortlog_finish_setup()` Taylor Blau
2022-10-24 18:55 ` [PATCH 6/7] shortlog: implement `--group=author` in terms of `--group=<format>` Taylor Blau
2022-10-24 18:55 ` [PATCH 7/7] shortlog: implement `--group=committer` " Taylor Blau
2022-10-24 21:59 ` [PATCH 0/7] shortlog: introduce `--group=<format>` Junio C Hamano
2022-10-24 23:45 ` Jeff King
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y1IGeuudJj18sDPz@nand.local \
--to=me@ttaylorr.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jacob@initialcommit.io \
--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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).