Re: [PATCH 2/3] gitweb: Cache $parent_commit info in git_blame()
- From
- Luben Tuikov <ltuikov@yahoo.com>
- Date
- Dec 10, 2008, 20:05 UTC
- Message-ID
- <710873.22344.qm@web31806.mail.mud.yahoo.com>
- In-Reply-To
- <200812101615.55340.jnareb@gmail.com>
--- On Wed, 12/10/08, Jakub Narebski <jnareb@gmail.com> wrote:
Show 9 quoted lines
> > Have you tested this patch that it gives the same
> commit chain
> > as before it?
>
> The only difference between precious version and this patch
> is that
> now, if you calculate sha-1 of $long_rev^, it is stored in
> $metainfo{$long_rev}{'parent'} and not calculated
> second time.Yes, I agree a patch to this effect would improve performance proportionally to the history of the lines of a file. So it's a good thing, as most commits change a contiguous block of size more than one line of a file.
"$parent_commit" depends on "$full_rev^" which depends on "$full_rev". So as soon as "$full_rev" != "$old_full_rev", you'd know that you need to update "$parent_commit". "$old_full_rev" needs to exist outside the scope of "while (1)". I didn't see this in the code or in the patch.
> But I have checked that (at least for single example file) > the blame output is identical for before and after this patch.
I've always tested it on something like "gitweb.perl", etc.
Luben