Code

blame: tolerate bogus e-mail addresses a bit better
authorJosh Stone <jistone@redhat.com>
Thu, 21 Apr 2011 22:07:36 +0000 (15:07 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 29 Apr 2011 18:09:42 +0000 (11:09 -0700)
commit9b01f0038b63ccdf697b2387f4fcd4b03bd249d5
treee4ccc872f4f1c4320541f49e58d07e1d00a33d85
parentec014eac0e9e6f30cbbca616090fa2ecf74797e7
blame: tolerate bogus e-mail addresses a bit better

The names and e-mails are sanitized by fmt_ident() when creating commits,
so that they do not contain "<" nor ">", and the "committer" and "author"
lines in the commit object will always be in the form:

    ("author" | "committer") name SP "<" email ">" SP timestamp SP zone

When parsing the email part out, the current code looks for SP starting
from the end of the email part, but the author could obfuscate the address
as "author at example dot com".

We should instead look for SP followed by "<", to match the logic of the
side that formats these lines.

Signed-off-by: Josh Stone <jistone@redhat.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/blame.c
t/annotate-tests.sh
t/t8002-blame.sh