[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] automate log?
From: |
Stephen Leake |
Subject: |
Re: [Monotone-devel] automate log? |
Date: |
Sat, 24 May 2008 07:38:10 -0400 |
User-agent: |
Gnus/5.1008 (Gnus v5.10.8) Emacs/22.1 (windows-nt) |
Stephen Leake <address@hidden> writes:
> Thomas Keller <address@hidden> writes:
>
>> Stephen Leake schrieb:
>>> I'm thinking of adding a new 'automate log' command.
>>> It would have options for specifying what data to include in the
>>> output, and output everything in basic_io.
>>> The rationale for this is that the current Emacs DVC implementation
>>> of
>>> "show log for this file" is incredibly slow.
>>> Emacs DVC uses the existing automate functions to retrieve all the
>>> information it needs for "show log for this file". That ends up being
>>> a _lot_ of automate calls, and it scales with the size of the
>>> database, since essentially every revision must be examined to see if
>>> it changes the file. Even using automate stdio, it is far too slow to
>>> be useful.
>>
>> I've implemented that as well and used automate get_content_changed
>> and automate get_corresponding_path so I only had to examine those
>> revisions where the file was actually changed (content marks). This is
>> actually quite fast and can works incrementally just like mtn log
>> does.
>
> Emacs DVC uses get_content_changed as well. However, that does not
> show _all_ revisions that changed the file; only the last revision
> that did.
>
> So we have to call it again on that revision, etc. This is too slow,
> at least in the Emacs implementation. It does not examine _every_
> revision in the database; I just had that impression because it was so
> slow :).
>
> One problem with the Emacs implementation is that it finds _all_
> revisions that changed the file, even if the user only requested the
> last 10 (emulating 'mtn log --last-n'). I'll fix that first, and see
> if it's fast enough.
It turns out there was a nasty bug in the Emacs implementation; it was
actually an infinite loop. So now it works; still slow, but acceptable
given everything else on my list of things to do.
So I won't be working on 'automate log' right now; maybe later.
--
-- Stephe
Re: [Monotone-devel] automate log?, William Uther, 2008/05/22