Re: [PATCH 1/2] git-svn: don't append extra newlines at the end of commit messages.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux