mq: introduce qpush --check
qpush --check let you qpush with uncommitted files not overlapping
patched files.
mq: introduce qpop --check
qpop --check let you qpop with uncommitted files if they do not
intersect with files touched by the popped patches.
pager: check if signal.SIGPIPE exists
We have to check for signal.SIGPIPE before we attempt
to set it.
patch: fix segfault against unified diffs which start line is zero
Since
2b1ec74c961f, if a chunk starts with "@@ -0,1", oldstart turns into
a negative value. Because diffhelpers.testhunk() doesn't expect negative bstart,
it bypasses "alen > blen - bstart" condition and segfaults at
"PyList_GET_ITEM(b, i + bstart)".
bisect: set HG_NODE when runing a command
When running a command, set the environment variable HG_NODE to
tell the command which changeset is being visited.
bisect: track the current changeset (
issue3382)
Introduce a new revset feature, bisect(current), that identifies
the changeset currently being bisected.
localrepo: optimize internode status calls using withflags
Introduce manifestdict.withflags() to get a set of all files which have any
flags set, since these are likely to be a minority. Otherwise checking .flags()
for every file is a lot of dictionary lookups and is quite slow.
localrepo: optimize internode status calls using match.always
Introduce match.always() to check if a match object always says yes, i.e.
None was passed in. If so, mfmatches should not bother iterating every file in
the repository.