From: Eric Wong Date: Thu, 1 Feb 2007 12:26:00 +0000 (-0800) Subject: git-svn: avoid extra get_log calls when refspecs are added for fetching X-Git-Tag: v1.5.1-rc1~193 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=502c1bf629154b4a248105b10346a06a6ff07387;p=git.git git-svn: avoid extra get_log calls when refspecs are added for fetching 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 --- diff --git a/git-svn.perl b/git-svn.perl index 58d0600f8..8c24012e7 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -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,