git-svn: speed up find_rev_before
authorBen Jackson <ben@ben.com>
Thu, 4 Jun 2009 03:45:51 +0000 (20:45 -0700)
committerEric Wong <normalperson@yhbt.net>
Thu, 25 Jun 2009 07:38:16 +0000 (00:38 -0700)
By limiting start revision of find_rev_before to max existing
revision.  This avoids a long wait if you do
'git svn reset -r 9999999'.  The linear search within the
contiguous revisions doesn't seem to be a problem.

[ew: expanded commit message]

Signed-off-by: Ben Jackson <ben@ben.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
git-svn.perl

index da1e1f64e9f3da06f687b447e448ad5bc6079072..f9a672d772e4d586edd18556aa653950b985ec5b 100755 (executable)
@@ -3171,6 +3171,8 @@ sub find_rev_before {
        my ($self, $rev, $eq_ok, $min_rev) = @_;
        --$rev unless $eq_ok;
        $min_rev ||= 1;
+       my $max_rev = $self->rev_map_max;
+       $rev = $max_rev if ($rev > $max_rev);
        while ($rev >= $min_rev) {
                if (my $c = $self->rev_map_get($rev)) {
                        return ($rev, $c);