Avery Pennarun <apenwarr@xxxxxxxxx> writes: > In git, all commits end in exactly one newline character. In svn, commits > end in zero or more newlines. Thus, when importing commits from svn into > git, git-svn always appends two extra newlines to ensure that the > git-svn-id: line is separated from the main commit message by at least one > blank line. > > Combined with the terminating newline that's always present in svn commits > produced by git, you usually end up with two blank lines instead of one > between the commit message and git-svn-id: line, which is undesirable. > > Instead, let's remove all trailing whitespace from the git commit on the way > through to svn. Perl part of the code looks fine but I am unsure if we like the ramifications of this patch on existing git-svn managed repositories. Doesn't this change the commit object name on our end for almost all of them? > Signed-off-by: Avery Pennarun <apenwarr@xxxxxxxxx> > --- > git-svn.perl | 8 +++++--- > 1 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/git-svn.perl b/git-svn.perl > index 47b0c37..a54979d 100755 > --- a/git-svn.perl > +++ b/git-svn.perl > @@ -1023,6 +1023,7 @@ sub get_commit_entry { > my $in_msg = 0; > my $author; > my $saw_from = 0; > + my $msgbuf = ""; > while (<$msg_fh>) { > if (!$in_msg) { > $in_msg = 1 if (/^\s*$/); > @@ -1035,14 +1036,15 @@ sub get_commit_entry { > if (/^From:/ || /^Signed-off-by:/) { > $saw_from = 1; > } > - print $log_fh $_ or croak $!; > + $msgbuf .= $_; > } > } > + $msgbuf =~ s/\s+$//s; > if ($Git::SVN::_add_author_from && defined($author) > && !$saw_from) { > - print $log_fh "\nFrom: $author\n" > - or croak $!; > + $msgbuf .= "\n\nFrom: $author"; > } > + print $log_fh $msgbuf or croak $!; > command_close_pipe($msg_fh, $ctx); > } > close $log_fh or croak $!; > -- > 1.5.4.3 -- 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