threads / patch / 35046

patchgit-svn: fix signed commit parsing

Subject: [PATCH] git-svn: fix signed commit parsing

## tl;dr

3 messages between Sep 30, 2013 and Oct 10, 2013. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

Nicolas Vigier· Sep 30, 2013, 14:46 UTC · lore

When parsing a commit object, git-svn wrongly think that a line containing spaces means the end of headers and the start of the commit message. In case of signed commit, the gpgsig entry contains a line with one space, so "git svn dcommit" will include part of the signature in the commit message.

An example of such problem : http://svnweb.mageia.org/treasurer?view=revision&revision=86

This commit changes the regex to only match an empty line as separator between the headers and the commit message.

Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org>
---
 git-svn.perl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to git-svn.perl +1 −1
diff --git a/git-svn.perl b/git-svn.perl
index ff1ce3d..1823db1 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1759,7 +1759,7 @@ sub get_commit_entry {
 		my $msgbuf = "";
 		while (<$msg_fh>) {
 			if (!$in_msg) {
-				$in_msg = 1 if (/^\s*$/);
+				$in_msg = 1 if (/^$/);
 				$author = $1 if (/^author (.*>)/);
 			} elsif (/^git-svn-id: /) {
 				# skip this for now, we regenerate the
-- 
1.8.4
Jonathan Nieder· Sep 30, 2013, 19:04 UTC · re: Nicolas Vigier · lore

Re: [PATCH] git-svn: fix signed commit parsing

Nicolas Vigier wrote:
Show 13 quoted lines
> When parsing a commit object, git-svn wrongly think that a line
> containing spaces means the end of headers and the start of the commit
> message. In case of signed commit, the gpgsig entry contains a line with
> one space, so "git svn dcommit" will include part of the signature in
> the commit message.
>
> An example of such problem :
> http://svnweb.mageia.org/treasurer?view=revision&revision=86
>
> This commit changes the regex to only match an empty line as separator
> between the headers and the commit message.
>
> Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org>
Good catch.  For what it's worth,
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Eric Wong· Oct 10, 2013, 06:57 UTC · re: Jonathan Nieder · lore

Re: [PATCH] git-svn: fix signed commit parsing

Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 18 quoted lines
> Nicolas Vigier wrote:
> 
> > When parsing a commit object, git-svn wrongly think that a line
> > containing spaces means the end of headers and the start of the commit
> > message. In case of signed commit, the gpgsig entry contains a line with
> > one space, so "git svn dcommit" will include part of the signature in
> > the commit message.
> >
> > An example of such problem :
> > http://svnweb.mageia.org/treasurer?view=revision&revision=86
> >
> > This commit changes the regex to only match an empty line as separator
> > between the headers and the commit message.
> >
> > Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org>
> 
> Good catch.  For what it's worth,
> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>

Thanks both. I've signed-off, added Jonathan's reviewed-by and queued this up in my master. Currently at:

The following changes since commit 128a96c98442524c7f2eeef4757b1e48445f24ce:
  Update draft release notes to 1.8.5 for the fifth batch of topics (2013-09-20 12:42:02 -0700)
are available in the git repository at:
  git://git.bogomips.org/git-svn.git master
for you to fetch changes up to 945b9c14ffd3e11c916ee2b2428a0b2be9645829:
  git-svn.txt: elaborate on rev_map files (2013-10-10 06:56:12 +0000)
----------------------------------------------------------------
Keshav Kini (4):
      git-svn.txt: fix AsciiDoc formatting error
      git-svn.txt: reword description of gc command
      git-svn.txt: replace .git with $GIT_DIR
      git-svn.txt: elaborate on rev_map files
Nicolas Vigier (1):
      git-svn: fix signed commit parsing
 Documentation/git-svn.txt | 46 +++++++++++++++++++++++++++++++++-------------
 git-svn.perl              |  2 +-
 2 files changed, 34 insertions(+), 14 deletions(-)
-- 
Eric Wong

← back to recent threads