Bryan O'Sullivan <bos@serpentine.com> [Thu, 04 Aug 2005 05:14:59 -0800] rev 838
Merge with Matt.
Bryan O'Sullivan <bos@serpentine.com> [Wed, 03 Aug 2005 09:10:48 -0800] rev 837
Fix performance of hg diff.
commands.walk has been refactored. commands.walk's behaviour remains as
it was, but there is a new function, commands.makewalk. This returns
results that can be passed along to other internal code, in our case
dodiff.
mpm@selenic.com [Thu, 04 Aug 2005 13:27:41 -0800] rev 836
Merge with TAH
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Aug 2005 18:23:07 +0100] rev 835
Cleaned up trap handling in run-tests, too.
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Aug 2005 18:20:40 +0100] rev 834
Use sh instead of bash in tests.
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Aug 2005 18:13:17 +0100] rev 833
Removed special FIXME handling in run-tests, added bug info to .out files.
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Aug 2005 18:06:49 +0100] rev 832
Handle broken pipe on pressing Ctrl-C with e.g. 'hg log|grep something'.
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Aug 2005 17:43:05 +0100] rev 831
Cleaned up trap handling:
- Use numbers instead of signal names
- No need to explicitly call "cleanup_exit RC" to exit with return code RC.
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Aug 2005 17:23:31 +0100] rev 830
If rejects are empty after using the editor, merge with diff+patch was ok.
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Aug 2005 17:16:41 +0100] rev 829
Shortened hgmerge a little bit.
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Aug 2005 16:56:44 +0100] rev 828
Hide error message of type command.
"Wallace, Eric S" <eric.s.wallace@intel.com> [Thu, 04 Aug 2005 13:25:59 -0800] rev 827
Fix array overflow bug in bdiff
I ran into a bug while importing a large repository into mercurial.
The diff algorithm does not allocate a big enough array of hunks
for some test cases. This results in memory corruption, and possibly,
as in my case, a seg fault.
You should be able to reproduce this problem with any case of more
than a few lines that follows this pattern:
a b
= =
1 1
2
2 3
4
3 5
.
4 .
.
5
.
.
.
I.e., "a" has blank lines on every other line that have been removed in
"b". In this case, the number of matching hunks is equal to the number
of lines in "b". This is more than ((an + bn)/4 + 2). I'm not sure what
motivates this formula, but when I changed it to the smaller of an or
bn (+ 1), it works.
[comment added by mpm]
Kyle Moffett <mrmacman_g4@mac.com> [Thu, 04 Aug 2005 13:22:36 -0800] rev 826
Allow import from files with spaces
Index: hg/mercurial/commands.py
===================================================================
Samuel Tardieu <sam@rfc1149.net> [Thu, 04 Aug 2005 13:21:27 -0800] rev 825
Add an option to hg serve to serve file using IPv6
mpm@selenic.com [Tue, 02 Aug 2005 08:57:32 -0800] rev 824
Merge with BOS
Thomas Arendsen Hein <thomas@intevation.de> [Mon, 01 Aug 2005 17:58:13 +0100] rev 823
Use list comprehension in hg status.
Bryan O'Sullivan <bos@serpentine.com> [Sun, 31 Jul 2005 18:03:46 -0800] rev 822
Attempt to yield names in sorted order when walking.
This is an improvement in behaviour, but the walk and changes code still
has some flaws that make sorted name presentation difficult:
- changes returns tuples of names, instead of a sorted list of (name,
status) pairs.
- walk yields deleted names after all others.
Bryan O'Sullivan <bos@serpentine.com> [Sun, 31 Jul 2005 17:54:00 -0800] rev 821
Ensure that dirstate.walk only yields names once.
Its predecessor code used to do this, and now it does, too.
Bryan O'Sullivan <bos@serpentine.com> [Sun, 31 Jul 2005 17:42:46 -0800] rev 820
Clean up walk and changes code to use normalised names properly.
New function: commands.pathto returns the relative path from one path
to another. For example, given foo/bar and baz/quux, it will return
../../baz/quux. This new function is used by the walk and status code
to print relative paths correctly.
New command: debugwalk exercises the walk code without doing anything
more.
hg.dirstate.walk now yields normalised names. For example, if you're
in the baz directory and you ask it to walk ../foo/bar/.., it will yield
names starting with foo/.
As a result of this change, all of the other walk and changes methods
in this module also return normalised names.
The util.matcher function now normalises globs and path names, so that
it will match normalised names properly.
Finally, util.matcher uses the non-glob prefix of a glob to tell walk
which directories to scan. Perviously, a glob like foo/* would scan
everything, but only return matches for foo/*. Now, foo/* only scans
under foo (using the globprefix function), which is much faster.
Bryan O'Sullivan <bos@serpentine.com> [Sun, 31 Jul 2005 17:31:15 -0800] rev 819
Update output for test-merge5.
mpm@selenic.com [Mon, 01 Aug 2005 23:34:23 -0800] rev 818
Actually implement the -f switch for push
mpm@selenic.com [Mon, 01 Aug 2005 23:23:51 -0800] rev 817
Make ssh URL parsing more robust
mpm@selenic.com [Mon, 01 Aug 2005 23:17:22 -0800] rev 816
Warn on pushing unsynced repo or adding new heads
By popular demand
mpm@selenic.com [Sat, 30 Jul 2005 09:01:59 -0800] rev 815
Psyco was failing to call dirstate.__del__ for import
Remove it.
mpm@selenic.com [Sat, 30 Jul 2005 09:00:14 -0800] rev 814
Merge with BOS
Bryan O'Sullivan <bos@serpentine.com> [Fri, 29 Jul 2005 15:02:27 -0800] rev 813
Adapt commit to use file matching code.
The code is slightly complicated by the need to commit all outstanding
changes in the repository if no file names are given (other commands
operate on the current directory and its subdirectories in this case).
localrepository.changes has acquired an optional match parameter, to let
it filter out include/exclude options.
Bryan O'Sullivan <bos@serpentine.com> [Fri, 29 Jul 2005 12:30:12 -0800] rev 812
Reduce the amount of stat traffic generated by a walk.
When we switched to the new walk code for commands, we no longer passed a
list of specific files to the repo or dirstate walk or changes methods.
This meant that we always walked and attempted to match everything,
which was not efficient.
Now, if we are given any patterns to match, or nothing at all, we still
walk everything. But if we are given only file names that contain no
glob characters, we only walk those.
Bryan O'Sullivan <bos@serpentine.com> [Fri, 29 Jul 2005 08:51:42 -0800] rev 811
Fix documentation of -I and -X options.
These options apply to all names, not just to directories. In other
words, you can do something like this:
hg add -X 'f*' '*.c'
and it will have the effect of "add all files matching *.c, except those
starting with f".
Bryan O'Sullivan <bos@serpentine.com> [Fri, 29 Jul 2005 08:49:01 -0800] rev 810
Move commands.forget over to using new walk code.
With no names, it now recursively forgets everything, as is the default
behaviour of other commands. And prints the names of all files it
hasn't specifically been told to forget.
Bryan O'Sullivan <bos@serpentine.com> [Fri, 29 Jul 2005 08:42:28 -0800] rev 809
Fix performance regression in addremove command.
When I rewrote addremove, I lazily put a call to repo.changes in,
which was unnecessary and slow. This is a new rewrite, preserving the
file name behaviour, but replacing the call to repo.changes with a walk,
which is much cheaper, and avoids calls to os.stat on all but files that
have probably been deleted.