From: Ramkumar Ramachandra Date: Fri, 14 Jan 2011 08:05:57 GMT Subject: Re: working with a large repository and git svn Message-ID: <20110114080554.GA1735@kytes> In-Reply-To: Hi Joe, Joe Corneli writes: > > I think the state of the art is currently git2svn > > Thanks, that did indeed work, though, for the record it uses committer > name and email in the log that it generates, not author name and > email, but no worries! That should be easy enough to fix with something like this (warning: untested). A more elegant solution would actually use some sort of user-configurable mapping from Git authors/ committers to SVN authors though. Signed-off-by: Ramkumar Ramachandra --8<-- diff --git a/git2svn b/git2svn index 2380775..3856696 100755 --- a/git2svn +++ b/git2svn @@ -261,12 +261,8 @@ COMMAND: while (!eof(IN)) { $commit{Mark} = $1; $next = next_line($IN); } - if ($next =~ m/author +(.*)/) { - $commit{Author} = $1; - $next = next_line($IN); - } - unless ($next =~ m/committer +(.+) +<([^>]+)> +(\d+) +[+-](\d+)$/) { - die "missing comitter: $_"; + unless ($next =~ m/author +(.+) +<([^>]+)> +(\d+) +[+-](\d+)$/) { + die "missing author: $_"; } $commit{CommitterName} = $1; @@ -275,6 +271,9 @@ COMMAND: while (!eof(IN)) { $commit{CommitterTZ} = $4; $next = next_line($IN); + if ($next =~ m/committer +(.*)/) { + $next = next_line($IN); + } my $log = read_data($IN, $next); $next = next_line($IN);