mason@suse.com [Fri, 12 Aug 2005 09:57:59 -0800] rev 873
addremove was not correctly finding removed files when given
a list of files to look at. These end up with a src of 'f' from
walk() but no longer exist on the filesystem.
Index: mine/mercurial/commands.py
===================================================================
mason@suse.com [Fri, 12 Aug 2005 09:57:56 -0800] rev 872
dirstate walking optimizations
The repo walking code introduces a number of calls to dirstate.map.copy(),
significantly slowing down the walk on large trees. When a list of
files is passed to the walking code, we should only look at map entries
relevant to the file list passed in.
dirstate.filterfiles() is added to return a subset of the dirstate map.
The subset includes in files passed in, and if one of the files requested
is actually a directory, it includes any files inside that directory tree.
This brings the time for hg diff Makefile down from 1.7s to .3s on
a linux kernel repo.
Also, the diff command was unconditionally calling makewalk, leading
to an extra pass through repo.changes. This patch avoids the call
to makewalk when commands.diff isn't given a list of patterns, cutting
the time for hg diff (with no args) in half.
Index: mine/mercurial/hg.py
===================================================================
Bryan O'Sullivan <bos@serpentine.com> [Tue, 09 Aug 2005 17:24:38 -0800] rev 871
Merge with mpm.
Bryan O'Sullivan <bos@serpentine.com> [Sun, 07 Aug 2005 12:43:11 -0800] rev 870
Teach walk code about absolute paths.
The first consequence of this is that absolute and relative paths now
all work in the same way. The second is that paths that lie outside
the repository now cause an error to be reported, instead of something
arbitrary and expensive being done.
Internally, all of the serious work is in the util package. The new
canonpath function takes an arbitrary path and either returns a
canonical path or raises an error. Because it needs to know where the
repository root is, it must be fed a repository or dirstate object, which
has given commands.matchpats and friends a new parameter to pass along.
The util.matcher function uses this to canonicalise globs and relative
path names.
Meanwhile, I've moved the Abort exception from commands to util, and
killed off the redundant util.CommandError exception.
Bryan O'Sullivan <bos@serpentine.com> [Sun, 07 Aug 2005 11:09:21 -0800] rev 869
Kill dead function.
Bryan O'Sullivan <bos@serpentine.com> [Sun, 07 Aug 2005 11:04:58 -0800] rev 868
Fix debugwalk when there's nothing to walk.
tksoh@users.sourceforge.net [Sat, 13 Aug 2005 12:41:00 -0800] rev 867
Allow Mercurial to build on HP-UX 11
Temporary fix to allow Mercurial to build on HP-UX 11, as the C
compiler on HP-UX 11 doesn't support 'inline' qualifier. The
'__inline' qualifier seemed to be supported, but not without
first resolving other associated issues.
mpm@selenic.com [Fri, 12 Aug 2005 23:54:09 -0800] rev 866
Merge with TAH
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 10 Aug 2005 08:41:23 +0100] rev 865
Cleanup after previous changes:
- there are only two states for the exec bit, so no need to override it.
- file_ variable is only once now, so it self.file(f) can be used directly.
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 10 Aug 2005 08:23:42 +0100] rev 864
Extended test case to test dirstate length bug fixed in
a7e95e3606c7.