Signed-off-by: Felipe Contreras <[email protected]>
---
contrib/remote-helpers/git-remote-hg | 10 ++++++++--
contrib/remote-helpers/test-hg.sh | 8 ++++----
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/contrib/remote-helpers/git-remote-hg
b/contrib/remote-helpers/git-remote-hg
index 3c6eeb7..0084709 100755
--- a/contrib/remote-helpers/git-remote-hg
+++ b/contrib/remote-helpers/git-remote-hg
@@ -51,6 +51,7 @@ import urlparse
NAME_RE = re.compile('^([^<>]+)')
AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')
+EMAIL_RE = re.compile('^([^<>]+[^ \\\t<>])?\\b(?:[ \\t<>]*?)\\b([^ \\t<>]+@[^
\\t<>]+)')
AUTHOR_HG_RE = re.compile('^(.*?) ?<(.*?)(?:>(.+)?)?$')
RAW_AUTHOR_RE = re.compile('^(\w+) (?:(.+)? )?<(.*)> (\d+) ([+-]\d+)')
@@ -245,9 +246,14 @@ def fixup_user_git(user):
name = m.group(1)
mail = m.group(2).strip()
else:
- m = NAME_RE.match(user)
+ m = EMAIL_RE.match(user)
if m:
- name = m.group(1).strip()
+ name = m.group(1)
+ mail = m.group(2)
+ else:
+ m = NAME_RE.match(user)
+ if m:
+ name = m.group(1).strip()
return (name, mail)
def fixup_user_hg(user):
diff --git a/contrib/remote-helpers/test-hg.sh
b/contrib/remote-helpers/test-hg.sh
index d5b8730..8de2aa7 100755
--- a/contrib/remote-helpers/test-hg.sh
+++ b/contrib/remote-helpers/test-hg.sh
@@ -137,15 +137,15 @@ test_expect_success 'authors' '
author_test alpha "" "H G Wells <[email protected]>" &&
author_test beta "test" "test <unknown>" &&
- author_test beta "test <[email protected]> (comment)" "test <unknown>" &&
+ author_test beta "test <[email protected]> (comment)" "test
<[email protected]>" &&
author_test gamma "<[email protected]>" "Unknown <[email protected]>" &&
author_test delta "name<[email protected]>" "name <[email protected]>" &&
- author_test epsilon "name <[email protected]" "name <unknown>" &&
+ author_test epsilon "name <[email protected]" "name <[email protected]>" &&
author_test zeta " test " "test <unknown>" &&
author_test eta "test < [email protected] >" "test <[email protected]>" &&
- author_test theta "test >[email protected]>" "test <unknown>" &&
+ author_test theta "test >[email protected]>" "test <[email protected]>" &&
author_test iota "test < test <at> example <dot> com>" "test <unknown>" &&
- author_test kappa "[email protected]" "[email protected] <unknown>"
+ author_test kappa "[email protected]" "Unknown <[email protected]>"
) &&
git clone "hg::$PWD/hgrepo" gitrepo &&
--
1.8.2.1.790.g4588561
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html