git-svn: allow empty email-address using authors-prog and authors-file

The email address in --authors-file and --authors-prog can be empty but
git-svn translated it into a fictional email address in the form

	jondoe <jondoe@6aafaa21e0fb4338a68ab372a049893d>

containing the SVN repository UUID. Now git-svn behaves like git-commit:
If the email is *explicitly* set to the empty string using '<>', the
commit does not contain an email address, only the name:

	jondoe <>

Allowing to remove the email address *intentionally* prevents automatic
systems from sending emails to those fictional addresses and avoids
cluttering the log output with unnecessary stuff.

Signed-off-by: Andreas Heiduk <asheiduk@gmail.com>
Signed-off-by: Eric Wong <e@80x24.org>
diff --git a/t/t9138-git-svn-authors-prog.sh b/t/t9138-git-svn-authors-prog.sh
index 7d7e9d4..e94d2a6 100755
--- a/t/t9138-git-svn-authors-prog.sh
+++ b/t/t9138-git-svn-authors-prog.sh
@@ -9,7 +9,9 @@
 
 write_script svn-authors-prog "$PERL_PATH" <<-\EOF
 	$_ = shift;
-	if (s/-sub$//)  {
+	if (s/-hermit//) {
+		print "$_ <>\n";
+	} elsif (s/-sub$//)  {
 		print "$_ <$_\@sub.example.com>\n";
 	} else {
 		print "$_ <$_\@example.com>\n";
@@ -68,6 +70,28 @@
 git --git-dir=x/.git config --unset svn.authorsfile
 git --git-dir=x/.git config --unset svn.authorsprog
 
+test_expect_success 'authors-prog imported user without email' '
+	svn mkdir -m gg --username gg-hermit "$svnrepo"/gg &&
+	(
+		cd x &&
+		git svn fetch --authors-prog=../svn-authors-prog &&
+		git rev-list -1 --pretty=raw refs/remotes/git-svn | \
+		  grep "^author gg <> "
+	)
+'
+
+test_expect_success 'imported without authors-prog and authors-file' '
+	svn mkdir -m hh --username hh "$svnrepo"/hh &&
+	(
+		uuid=$(svn info "$svnrepo" |
+			sed -n "s/^Repository UUID: //p") &&
+		cd x &&
+		git svn fetch &&
+		git rev-list -1 --pretty=raw refs/remotes/git-svn | \
+		  grep "^author hh <hh@$uuid> "
+	)
+'
+
 test_expect_success 'authors-prog handled special characters in username' '
 	svn mkdir -m bad --username "xyz; touch evil" "$svnrepo"/bad &&
 	(