Message5911

Author jglick
Recipients
Date 2008-04-16.13:47:19
Content
If you have a large project checked out, and type

$ hg diff some/particular/file

where the named file is modified, Hg 1.0 will take much longer than Hg 0.9.5.
strace (on Ubuntu) shows 1.0 (and crew dev versions) stat'ing the entire working
directory, even though there is no way such information could be relevant.

For a big project, this regression can make basic operations orders of magnitude
slower, especially with cold disk caches.

Surely there is some way to augment unit tests for basic commands to ensure that
they do not inspect irrelevant parts of the working copy?

Demo:

$ hg init
$ for i in 0 1 2 3 4 5 6 7 8 9; do for j in 0 1 2 3 4 5 6 7 8 9; do for k in 0 1
2 3 4 5 6 7 8 9; do mkdir -p $i/$j; echo stuff > $i/$j/$k; done; done; done
$ hg -q ci -A -m new
$ echo more >> 5/6/7
$ strace hg di 5/6/7 2>&1 | fgrep `pwd`
History
Date User Action Args
2008-04-16 13:47:23jglicksetmessageid: <1208353643.19.0.665267871624.issue1090@selenic.com>
2008-04-16 13:47:23jglicklinkissue1090 messages
2008-04-16 13:47:19jglickcreate