git-svn: avoid extra get_log calls when refspecs are added for fetching
authorEric Wong <normalperson@yhbt.net>
Thu, 1 Feb 2007 12:26:00 +0000 (04:26 -0800)
committerEric Wong <normalperson@yhbt.net>
Fri, 23 Feb 2007 08:57:11 +0000 (00:57 -0800)
Since fetch_loop_common starts from the lowest revision number
in a group of Git::SVN objects; we want to avoid refetching
get_log for current users for things we've already cut it.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
git-svn.perl

index 58d0600f891bcdfe12479728b3d8760e339d5360..8c24012e7bda810f40c80f372f28d10a55423c22 100755 (executable)
@@ -2370,7 +2370,12 @@ sub gs_fetch_loop_common {
                        skip_unknown_revs($err);
                };
                foreach my $gs (@gs) {
-                       $self->get_log([$gs->{path}], $min, $max, 0, 1, 1, sub
+                       my $min_r = $min;
+                       my $rdb_max = $gs->rev_db_max;
+                       next if $rdb_max >= $max;
+                       $min_r = $rdb_max + 1 if ($rdb_max > $min_r);
+                       $self->get_log([$gs->{path}], $min_r, $max,
+                                      0, 1, 1, sub
                                       { my ($paths, $rev) = @_;
                                         push @{$revs{$rev}},
                                              [ $gs,