--- git-mv.perl.orig 2005-11-23 11:24:10.000000000 +0600 +++ git-mv.perl 2005-11-23 11:33:31.000000000 +0600 @@ -185,13 +185,36 @@ } my $rc; -if (scalar @changedfiles >0) { - $rc = system("git-update-index","--",@changedfiles); +while (scalar @changedfiles >0) { + my @toHandle = (); + my $len = 0; + while ($len < 5000 && scalar(@changedfiles) >0) { + my $f = pop(@changedfiles); + $len += length($f) + 1; + push(@toHandle, $f); + } + $rc = system("git-update-index","--",@toHandle); die "git-update-index failed to update changed files with code $?\n" if $rc; } -if (scalar @addedfiles >0) { - $rc = system("git-update-index","--add","--",@addedfiles); +while (scalar @addedfiles >0) { + my @toHandle = (); + my $len = 0; + while ($len < 5000 && scalar(@addedfiles) >0) { + my $f = pop(@addedfiles); + $len += length($f) + 1; + push(@toHandle, $f); + } + $rc = system("git-update-index","--add","--",@toHandle); die "git-update-index failed to add new names with code $?\n" if $rc; } -$rc = system("git-update-index","--remove","--",@deletedfiles); -die "git-update-index failed to remove old names with code $?\n" if $rc; +while (scalar @deletedfiles > 0) { + my @toHandle = (); + my $len = 0; + while ($len < 5000 && scalar(@deletedfiles) >0) { + my $f = pop(@deletedfiles); + $len += length($f) + 1; + push(@toHandle, $f); + } + $rc = system("git-update-index","--remove","--",@toHandle); + die "git-update-index failed to remove old names with code $?\n" if $rc; +}