Code

git-svn: un-break "git svn rebase" when log.abbrevCommit=true
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sun, 12 Feb 2012 00:23:06 +0000 (00:23 +0000)
committerEric Wong <normalperson@yhbt.net>
Tue, 21 Feb 2012 21:37:31 +0000 (21:37 +0000)
Change git-svn to use git-rev-list(1) instead of git-log(1) since the
latter is porcelain that'll cause "git svn rebase" to fail completely
if log.abbrevCommit is set to true in the configuration.

Without this patch the code will fail to parse a SHA1, and then just
spew a bunch of "Use of uninitialized value $hash in string eq"
warnings at "if ($c && $c eq $hash) { ..." and never do anything
useful.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
git-svn.perl

index 712eeebe17f4fe73c09c66b98012bf97d697a843..bebe38b1ab600be1a0bd4e1b65bb928a68ce7adc 100755 (executable)
@@ -1878,8 +1878,7 @@ sub cmt_sha2rev_batch {
 
 sub working_head_info {
        my ($head, $refs) = @_;
-       my @args = qw/log --no-color --no-decorate --first-parent
-                     --pretty=medium/;
+       my @args = qw/rev-list --first-parent --pretty=medium/;
        my ($fh, $ctx) = command_output_pipe(@args, $head);
        my $hash;
        my %max;