git-svn: correctly handle packed-refs in refs/remotes/
authorEric Wong <normalperson@yhbt.net>
Wed, 13 Dec 2006 00:45:00 +0000 (16:45 -0800)
committerJunio C Hamano <junkio@cox.net>
Wed, 13 Dec 2006 01:26:23 +0000 (17:26 -0800)
We now use git-rev-parse universally to read refs, instead
of our own file_to_s function (which I plan on removing).

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-svn.perl

index c746a3c62a15df8a726cdb26d4b367816233bea6..15254e479595de047258188e0979bea322869696 100755 (executable)
@@ -2027,9 +2027,17 @@ sub git_commit {
 
        # just in case we clobber the existing ref, we still want that ref
        # as our parent:
-       if (my $cur = eval { file_to_s("$GIT_DIR/refs/remotes/$GIT_SVN") }) {
+       open my $null, '>', '/dev/null' or croak $!;
+       open my $stderr, '>&', \*STDERR or croak $!;
+       open STDERR, '>&', $null or croak $!;
+       if (my $cur = eval { safe_qx('git-rev-parse',
+                                    "refs/remotes/$GIT_SVN^0") }) {
+               chomp $cur;
                push @tmp_parents, $cur;
        }
+       open STDERR, '>&', $stderr or croak $!;
+       close $stderr or croak $!;
+       close $null or croak $!;
 
        if (exists $tree_map{$tree}) {
                foreach my $p (@{$tree_map{$tree}}) {