On Wed, Feb 10, 2021 at 12:10:02PM -0800, Junio C Hamano wrote: > >> OK. Do we know at this point that cwd is always/already at the root > >> level of the working tree? > > > > I think so. If we're in a non-bare repository, we'd have chdir'd during > > the setup/discovery steps. At any rate, this patch could not possibly be > > making such a situation _worse_, as we were previously reading it > > unconditionally. > > But the point of the patch is to ensure that we only read from the > top of the working tree---I wanted to make sure that we previously > weren't reading it from any subdirectory the command started. Ah, I see. I assume that part already worked, or people would be complaining that "git shortlog" does not work from a subdirectory. :) It doesn't look like we actually cover that in the test suite, though. We can do that pretty easily: diff --git a/t/t4203-mailmap.sh b/t/t4203-mailmap.sh index bf7a8add53..93caf9a46d 100755 --- a/t/t4203-mailmap.sh +++ b/t/t4203-mailmap.sh @@ -923,4 +923,13 @@ test_expect_success 'shortlog on stdin respects mailmap from repo' ' test_cmp expect actual ' +test_expect_success 'find top-level mailmap from subdir' ' + git clone loc-bare loc-wt && + cp loc-bare/.mailmap loc-wt && + mkdir loc-wt/subdir && + git -C loc-wt/subdir log -1 --format=%aE >actual && + echo new@xxxxxxxxxxx >expect && + test_cmp expect actual +' + test_done I'll resend the whole thing with that squashed in, plus Eric's documentation suggestion. -Peff