pack-objects: be incredibly anal about stdio semantics
[git.git] / git-svnimport.perl
index 6e3a44a..f17d5a2 100755 (executable)
@@ -318,7 +318,7 @@ sub get_file($$$) {
                        die $res->status_line." at $url\n";
                }
        } else {
-               $name = $svn->file("/$svnpath",$rev);
+               $name = $svn->file("$svnpath",$rev);
                return undef unless defined $name;
        }
 
@@ -546,23 +546,30 @@ sub commit {
                        }
                }
 
-               if(@old) {
-                       open my $F, "-|", "git-ls-files", "-z", @old or die $!;
-                       @old = ();
+               while(@old) {
+                       my @o1;
+                       if(@old > 55) {
+                               @o1 = splice(@old,0,50);
+                       } else {
+                               @o1 = @old;
+                               @old = ();
+                       }
+                       open my $F, "-|", "git-ls-files", "-z", @o1 or die $!;
+                       @o1 = ();
                        local $/ = "\0";
                        while(<$F>) {
                                chomp;
-                               push(@old,$_);
+                               push(@o1,$_);
                        }
                        close($F);
 
-                       while(@old) {
+                       while(@o1) {
                                my @o2;
-                               if(@old > 55) {
-                                       @o2 = splice(@old,0,50);
+                               if(@o1 > 55) {
+                                       @o2 = splice(@o1,0,50);
                                } else {
-                                       @o2 = @old;
-                                       @old = ();
+                                       @o2 = @o1;
+                                       @o1 = ();
                                }
                                system("git-update-index","--force-remove","--",@o2);
                                die "Cannot remove files: $?\n" if $?;