git-svn: Same default as cvsimport when using --use-log-author

When using git-cvsimport, the author is inferred from the cvs commit,
e.g. cvs commit logname is foobaruser, then the author field in git
results in:

Author: foobaruser <foobaruser>

Which is not perfect, but perfectly acceptable given the circumstances.

The default git-svn import however, results in:

Author: foobaruser <foobaruser@acf43c95-373e-0410-b603-e72c3f656dc1>

When using mixes of imports, from CVS and SVN into the same git
repository, you'd like to harmonise the imports to the format cvsimport
uses.
git-svn supports an experimental option --use-log-author which currently
results in the same logentry as without that option when no From: or
Signed-off-by: is found in the logentry ($email currently ends up empty,
and hence is generated again).

This patches harmonises the result with cvsimport, and makes
git-svn --use-log-author produce:

Author: foobaruser <foobaruser>

Signed-off-by: Stephen R. van den Berg <srb@cuci.nl>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Stephen R. van den Berg 2008-04-29 23:20:32 +02:00 коммит произвёл Junio C Hamano
Родитель e4b9c36ca4
Коммит abfa533dea
1 изменённых файлов: 4 добавлений и 2 удалений

Просмотреть файл

@ -2428,13 +2428,15 @@ sub make_log_entry {
$name_field = $1; $name_field = $1;
} }
if (!defined $name_field) { if (!defined $name_field) {
# if (!defined $email) {
$email = $name;
}
} elsif ($name_field =~ /(.*?)\s+<(.*)>/) { } elsif ($name_field =~ /(.*?)\s+<(.*)>/) {
($name, $email) = ($1, $2); ($name, $email) = ($1, $2);
} elsif ($name_field =~ /(.*)@/) { } elsif ($name_field =~ /(.*)@/) {
($name, $email) = ($1, $name_field); ($name, $email) = ($1, $name_field);
} else { } else {
($name, $email) = ($name_field, 'unknown'); ($name, $email) = ($name_field, $name_field);
} }
} }
if (defined $headrev && $self->use_svm_props) { if (defined $headrev && $self->use_svm_props) {