diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-12-28 14:08:46 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-12-28 14:08:46 -0800 |
commit | 63dd544897c23227da1b6e57121d45adc5f91eb0 (patch) | |
tree | 29003ea17477c6fcdd588f27d6dda27b2da99b8e | |
parent | f427b94985f7f8cde46df20f644760adc0ca6735 (diff) | |
parent | 73d8c358ec42823f793ff7b3f85d8d4612c7072e (diff) | |
download | git-63dd544897c23227da1b6e57121d45adc5f91eb0.tar.gz git-63dd544897c23227da1b6e57121d45adc5f91eb0.tar.xz |
Merge branch 'ew/svn-crlf'
"git svn" has been updated to strip CRs in the commit messages, as
recent versions of Subversion rejects them.
* ew/svn-crlf:
git-svn: convert CRLF to LF in commit message to SVN
-rwxr-xr-x | git-svn.perl | 1 | ||||
-rwxr-xr-x | t/t9169-git-svn-dcommit-crlf.sh | 27 |
2 files changed, 28 insertions, 0 deletions
diff --git a/git-svn.perl b/git-svn.perl index d2404184b..aa242d4f4 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -1865,6 +1865,7 @@ sub get_commit_entry { } } $msgbuf =~ s/\s+$//s; + $msgbuf =~ s/\r\n/\n/sg; # SVN 1.6+ disallows CRLF if ($Git::SVN::_add_author_from && defined($author) && !$saw_from) { $msgbuf .= "\n\nFrom: $author"; diff --git a/t/t9169-git-svn-dcommit-crlf.sh b/t/t9169-git-svn-dcommit-crlf.sh new file mode 100755 index 000000000..54b1f61a2 --- /dev/null +++ b/t/t9169-git-svn-dcommit-crlf.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +test_description='git svn dcommit CRLF' +. ./lib-git-svn.sh + +test_expect_success 'setup commit repository' ' + svn_cmd mkdir -m "$test_description" "$svnrepo/dir" && + git svn clone "$svnrepo" work && + ( + cd work && + echo foo >>foo && + git update-index --add foo && + printf "a\\r\\n\\r\\nb\\r\\nc\\r\\n" >cmt && + p=$(git rev-parse HEAD) && + t=$(git write-tree) && + cmt=$(git commit-tree -p $p $t <cmt) && + git update-ref refs/heads/master $cmt && + git cat-file commit HEAD | tail -n4 >out && + test_cmp cmt out && + git svn dcommit && + printf "a\\n\\nb\\nc\\n" >exp && + git cat-file commit HEAD | sed -ne 6,9p >out && + test_cmp exp out + ) +' + +test_done |