On Fri, Feb 24, 2006 at 01:00:24PM -0500, Morten Welinder wrote: > It looks like handle_rev is seeing the same revisions over and over again. > I don't know why that would be, but the following patch just skips dups. > I have no idea if it is right, though. Merges. a--b--c--d--f \-g--h--/ It would do f,d,c,b,a + f,h,g,b,a So yes, this fix is correct, and Junio, I'll be doing some changes this weekend and send it along with a few other things. (On a medium-sized test tree at work with 3500 commits in the tree, 37 on the main Makefile (6 merges), this cuts the annotate time from 10s to a little over 2, so it's, umm, very worthwhile.) > > Morten > > > diff --git a/git-annotate.perl b/git-annotate.perl > index 3800c46..a5e2d86 100755 > --- a/git-annotate.perl > +++ b/git-annotate.perl > @@ -117,7 +117,10 @@ sub init_claim { > > sub handle_rev { > my $i = 0; > + my %seen = (); > while (my $rev = shift @revqueue) { > + next if $seen{$rev}; > + $seen{$rev} = 1; > > my %revinfo = git_commit_info($rev); > - > : send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Ryan Anderson sometimes Pug Majere - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html