[PATCH 3 of 3] use per-directory clustered stat calls even in cases where known tree is walked

Christian Boos cboos at neuf.fr
Wed Oct 1 03:51:34 CDT 2008


Benoit Boissinot wrote:
> On Tue, Sep 30, 2008 at 10:48:29PM -0400, Petr Kodl wrote:
> ...
> I was thinking something more like this, could you test on windows?
> (the testsuite runs ok on linux)
> - some doc needs be added to statfiles()
> - the correct exception (ENOENT?) should be catched when listdir fails
>
> diff --git a/mercurial/dirstate.py b/mercurial/dirstate.p
(snip)

Just a quick note to mention that the patch seemed to works fine - at 
first.

Then I had some trouble using MQ, hg qpop/qpush insisted that there were 
local changes, even if there were none shown by either hg stat or hg 
diff (even with -a). Printing the m,a,r,d variables in hgext/mq.py's 
check_localchanges showed all the files in 'd' (m, a, r were empty as 
expected). Then I had the not so clever idea to run `hg 
debugrebuildstate`, and after that the next command took of course a 
very long time, as every file hash needed to be rebuilt. But even when 
this eventually completed, the behavior was not clean again as  hg stat 
showed all the files as deleted ('!') even if they were not.
Reverting to baseline crew (or to Petr's latest patch) was fortunately 
OK (and the repository passed hg verify all the time).

-- Christian




More information about the Mercurial-devel mailing list