On Wed, Feb 10, 2021 at 12:10:02PM -0800, Junio C Hamano wrote:
quoted
quoted
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@example.com >expect &&
+ test_cmp expect actual
+'
+
test_done
I'll resend the whole thing with that squashed in, plus Eric's
documentation suggestion.
-Peff