Message ID | 20241016182124.48148-1-wolf@oriole.systems (mailing list archive) |
---|---|
Headers | show |
Series | builtin/shortlog: explicitly set hash algo when there is no repo | expand |
On Wed, Oct 16, 2024 at 08:21:22PM +0200, Wolfgang Müller wrote: > Here's v3 of this series. CI should now pass as the code has been moved > below any declarations. The regression test has been simplified, thanks > to Eric's input. > > I added another commit with a test for git-shortlog(1) that makes sure > it can process logs obtained from a repo with --object-format=sha256. > Thanks to Patrick for the suggestion and pointers. > > Wolfgang Müller (2): > builtin/shortlog: explicitly set hash algo when there is no repo > shortlog: Test reading a log from a SHA256 repo in a non-git directory Thanks. I took a look at this new round and it is looking close to me. I had a couple of small-ish comments that I think would be good to address in a new round. But if you feel strongly that the current round is good as-is, I'm happy to hear arguments in that direction, too ;-). Thanks, Taylor
On 2024-10-16 15:32, Taylor Blau wrote: > I had a couple of small-ish comments that I think would be good to > address in a new round. But if you feel strongly that the current round > is good as-is, I'm happy to hear arguments in that direction, too ;-). New round sounds perfectly fine to me, I'll send it along once there is some consensus on whether or not to keep the additional test.
Here's v3 of this series. CI should now pass as the code has been moved below any declarations. The regression test has been simplified, thanks to Eric's input. I added another commit with a test for git-shortlog(1) that makes sure it can process logs obtained from a repo with --object-format=sha256. Thanks to Patrick for the suggestion and pointers. Wolfgang Müller (2): builtin/shortlog: explicitly set hash algo when there is no repo shortlog: Test reading a log from a SHA256 repo in a non-git directory builtin/shortlog.c | 12 ++++++++++++ t/t4201-shortlog.sh | 12 ++++++++++++ 2 files changed, 24 insertions(+) Range-diff against v2: 1: d3047a0291 ! 1: 4813b458ac builtin/shortlog: explicitly set hash algo when there is no repo @@ Commit message add a regression test for the segfault. Signed-off-by: Wolfgang Müller <wolf@oriole.systems> + Thanks-to: Eric Sunshine <sunshine@sunshineco.com> ## builtin/shortlog.c ## @@ builtin/shortlog.c: int cmd_shortlog(int argc, - struct rev_info rev; - int nongit = !startup_info->have_repository; + + struct parse_opt_ctx_t ctx; + /* + * NEEDSWORK: Later on we'll call parse_revision_opt which relies on @@ builtin/shortlog.c: int cmd_shortlog(int argc, + if (nongit && !the_hash_algo) + repo_set_hash_algo(the_repository, GIT_HASH_SHA1); + - const struct option options[] = { - OPT_BIT('c', "committer", &log.groups, - N_("group by committer rather than author"), + git_config(git_default_config, NULL); + shortlog_init(&log); + repo_init_revisions(the_repository, &rev, prefix); ## t/t4201-shortlog.sh ## @@ t/t4201-shortlog.sh: fuzz() @@ t/t4201-shortlog.sh: fuzz() ' +test_expect_success 'shortlog --author from non-git directory does not segfault' ' -+ git log --no-expand-tabs HEAD >log && -+ env GIT_DIR=non-existing git shortlog --author=author <log 2>out ++ echo | nongit git shortlog --author=author +' + test_expect_success 'shortlog should add newline when input line matches wraplen' ' -: ---------- > 2: 9dfdc7510f shortlog: Test reading a log from a SHA256 repo in a non-git directory