Thu, 01 Sep 2005 07:34:53 -0700 Optimize dirstate walking
mason@suse.com [Thu, 01 Sep 2005 07:34:53 -0700] rev 1183
Optimize dirstate walking This generally cuts the time for hg status/diff in half, from 2s down to 1s. The main parts I'm trying to optimize are: 1) os.walk stats every file. dirstate.changes then stats every file again. 2) os.walk yields every file and subdir to dirstate.traverse who yields every file and everything in the dirstate map. dirstate.walk then filters this mass and yields every file to the caller. There should be fewer steps in here, and fewer duplicate strings yielded. 3) dirstate.walk runs util.unique on the results from dirstate.traverse, even though it is also passing things through dirstate.seen to look for duplicates. I've turned os.walk into something hg specific that takes all the dirstate ignore and matching rules into account. The new function also takes an function arg (statmatch()) the caller supplies to help filter out files it doesn't care about. dirstate.changes uses this to update state for each file, avoiding the second stat call. dirstate.walk is changed to turn the match function it is passed into a statmatch function. The only real difference is that a statmatch function takes the stat data as a second parameter. It now calls dirstate.walkhelper, who requires a statmatch function to be passed. This fails test-walk, but right now I think this is from a sorting error fixed by this patch. Index: crew/mercurial/dirstate.py ===================================================================
Wed, 31 Aug 2005 21:07:36 +0200 Merge with http://hannibal.lr-s.tudelft.nl/~vincent/fcgi/mercurial/fcgi/
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 31 Aug 2005 21:07:36 +0200] rev 1182
Merge with http://hannibal.lr-s.tudelft.nl/~vincent/fcgi/mercurial/fcgi/
Tue, 30 Aug 2005 21:58:44 +0200 Make sure the repository names don't have slashes at the at or else in some
Vincent Wagelaar <vincent@ricardis.tudelft.nl> [Tue, 30 Aug 2005 21:58:44 +0200] rev 1181
Make sure the repository names don't have slashes at the at or else in some cases env[path_info] will not find an defined repository. REQUEST_URI can contain a query_string appending the repository name would lead to corrupt urls.
Tue, 30 Aug 2005 18:23:39 +0200 Saving sys.argv and sys.stderr is not needed anymore
Vincent Wagelaar <vincent@ricardis.tudelft.nl> [Tue, 30 Aug 2005 18:23:39 +0200] rev 1180
Saving sys.argv and sys.stderr is not needed anymore
Wed, 31 Aug 2005 11:58:15 -0700 Fix mercurial.el help.
jdc@uwo.ca [Wed, 31 Aug 2005 11:58:15 -0700] rev 1179
Fix mercurial.el help.
Wed, 31 Aug 2005 11:56:58 -0700 Adjust hg-strip and hg-chomp regexps.
jdc@uwo.ca [Wed, 31 Aug 2005 11:56:58 -0700] rev 1178
Adjust hg-strip and hg-chomp regexps.
Wed, 31 Aug 2005 11:19:20 -0700 hg serve: print a more useful error message if server can't start.
Bryan O'Sullivan <bos@serpentine.com> [Wed, 31 Aug 2005 11:19:20 -0700] rev 1177
hg serve: print a more useful error message if server can't start.
(0) -1000 -300 -100 -30 -10 -7 +7 +10 +30 +100 +300 +1000 +3000 +10000 +30000 tip