[PATCH 0 of 2] changeset_printer to use contexts

Alexander Solovyov piranha at piranha.org.ua
Fri Oct 17 02:28:02 CDT 2008


On 2008-10-17, Matt Mackall wrote:

> On Tue, 2008-10-14 at 00:20 +0300, Alexander Solovyov wrote:
>> changeset_printer (and it's descendant changeset_templater) was using old
>> system with repo.changelog.read(). This patches updates them without
>> breaking API: first patch introduces changes inside this two classes and
>> second patch updates all users of them, which are switching between contexts
>> and repo.changelog to work with changeset_printer.

>> Tests pass after first patch (and, of course, after second ;-).

> What's the state of these patches? I seem to recall there was a
> performance regression?

Yes, there was and I can't find a way to improve situation. There is
times of current situation:

piranha at gtv ~/dev/hg/hg>hg --time log > /dev/null
Time: real 0.950 secs (user 0.930+0.000 sys 0.020+0.000)
piranha at gtv ~/dev/hg/hg>hg qpush renamed.patch   
applying logctx.patch
applying ctxusers.patch
applying renamed.patch
Now at: renamed.patch
piranha at gtv ~/dev/hg/hg>hg --time log > /dev/null
Time: real 1.110 secs (user 1.090+0.000 sys 0.030+0.000)

It was more worse than now (~1.25s), but Benoit suggested to revent
parent finding to old version, because new (via ctx.parents()) was much
slower. So if you'd like, I can resend all three patches again with
profiling output, maybe someone will see what I can do to improve
situation...

-- 
Alexander


More information about the Mercurial-devel mailing list