I am working on a fix for this issue, but I wanted to document it here. On a large repository with largefiles enabled, the time to run "hg status" on a single file on my machine (specifying a single file on the command-line) is: real 0m0.636s user 0m0.512s sys 0m0.120s Without the largefiles extension enabled, it is: real 0m0.215s user 0m0.180s sys 0m0.032s This may not seem like much, but it actually makes quite a difference for GUI tools (IDE plugins, etc) that need to be able to frequently get the status of a handful of files (say when expanding the directory structure in a UI). This is caused because we are still running through a lot of largefiles-specific status code, even when file(s) have been specified on the command-line and are not largefiles at all. A patch will be supplied to fix the issue shortly.
A patch for this issue has been submitted to the Mercurial development mailing list: http://www.selenic.com/pipermail/mercurial-devel/2011-December/036206.html === The following information about the patch was included in the commit message: This fixes a performance issue with 'hg status' when files are specified on the command-line. Previously, a large amount of largefiles code was executed, even if files were specified on the command-line and those files were not largefiles. This patch fixes the problem by first checking if non-largefiles were specified on the command-line and, just letting the normal status function handle the case if they were. On a brand new machine, the execution time for 'hg status filename' on a repository with largefiles was: real 0m0.636s user 0m0.512s sys 0m0.120s versus the following (the same repository, with largefiles disabled): real 0m0.215s user 0m0.180s sys 0m0.032s After this patch, the performance of 'hg status filename' on the same repository, with largefiles enabled is: real 0m0.228s user 0m0.189s sys 0m0.036s This performance boost is also true when patterns (rather than specific files) are specified on the command-line.
Fixed by http://selenic.com/repo/hg/rev/93c77d5b9752 Na'Tosha Bard <natosha@unity3d.com> largefiles: optimize status when files are specified (issue3144) (please test the fix)
--- Bug imported by bugzilla@serpentine.com 2012-05-12 09:26 EDT --- This bug was previously known as _bug_ 3144 at http://mercurial.selenic.com/bts/issue3144