Junio C Hamano <gitster@xxxxxxxxx> writes: > Junio C Hamano <gitster@xxxxxxxxx> writes: > >> Stefan Beller <stefanbeller@xxxxxxxxxxxxxx> writes: >> >>> git shortlog -sne >>> 1 A <A@xxxxxxxxxxx> >>> 1 A <a@xxxxxxxxxxx> >> >> This is coming from mailmap.c::add_mapping() that downcases the >> e-mail address. >> >> changed_email@xxxxxxxxxxx is mapped to a@xxxxxxxxxxx because of this >> downcasing, while "A <A@xxxxxxxxxxx>" does not have any entry for it >> in the .mailmap file, so it is given back as-is. Hence we see two >> distinct entries. > > I think it is wrong for the parser to lose information by > downcasing. > > It is perfectly fine to do the comparison case insensitively, to > allow <changed_Email@xxxxxxxxxxx> in the input is mangled using the > entry for <changed_email@xxxxxxxxxxx> in the .mailmap file; it is > not fine to downcase the parsed result, especially the side that is > used as the "rewritten result" (i.e. the tokens earlier on the line), > as that would mean mangling the output. > > Let me see if I can quickly whip up a fix. It might be just the matter of doing this. I suspect that we could drop the downcasing of old-email, too, but the new-email is supposed to be the rewritten result that appears on the output, and downcasing it is very wrong. I also suspect that this was an old workaround for the original string-list that did not know how to match items case insensitively, which we should have removed when we added case sensitivity support to the string-list at around 577f63e7 (Merge branch 'ap/log-mailmap', 2013-01-20). mailmap.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/mailmap.c b/mailmap.c index 418081e..c64a53d 100644 --- a/mailmap.c +++ b/mailmap.c @@ -56,9 +56,6 @@ static void add_mapping(struct string_list *map, if (old_email) for (p = old_email; *p; p++) *p = tolower(*p); - if (new_email) - for (p = new_email; *p; p++) - *p = tolower(*p); if (old_email == NULL) { old_email = new_email; -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html