run-tests: fix invalid reference to stringescape after a36cc85a5b7b
run-tests: assign value to ESCAPEMAP - dict.update do not return self

a36cc85a5b7b did more than what the description said and introduced a bug.
resolve: don't abort resolve -l even when no merge is in progress

This broke some internal automation that was quite reasonably checking for
unresolved files as a way to determine whether a merge happened cleanly. We
still abort for resolve --mark etc.
merge: use separate lists for each action type

This replaces the grand unified action list that had multiple action types as
tuples in one big list. That list was iterated multiple times just to find
actions of a specific type. This data model also made some code more
convoluted than necessary.

Instead we now store actions as a tuple of lists. Using multiple lists gives a
bit of cut'n'pasted code but also enables other optimizations.

This patch uses 'if True:' to preserve indentations and help reviewing. It also
limits the number of conflicts with other pending patches. It can trivially be
cleaned up later.
revset-benchmark: add max(::(tip~20) - obsolete())

This revset is used in evolve. The new revset lazyness should make it all faster
but in practice it is significantly slower.

Below is a timing for this entry on my Mercurial repo.

2.9.2) ! wall 0.034598 comb 0.040000 user 0.040000 sys 0.000000 (best of 100)
3.0+@) ! wall 0.062268 comb 0.060000 user 0.060000 sys 0.000000 (best of 100)

The ~20 have been taken arbitrary.
revsetbenchmark: automatically finds the perf extension

Before this changeset, you had to stand in the root of the mercurial repo to run
the `revsetbenchmark.py` script. Otherwise, the perf extension would not be
found a `./contrib/perf.py` and the script would crash in panic.

We now figure out the contrib directory from the location of this script. This
makes it possible to run the script from other location that the mercurial repo
root (but you still need to be in the core mercurial repository)
revsetbenchmark: support for running on other repo

We add a -R/--repo option to run the benchmarks on another repository. This is
very useful as some repository are bigger/more interesting  than the mercurial one.
Merge with stable
merge: fix stupid indentation left over from previous refactorings
update: introduce --tool for controlling the merge tool

Update is a kind of merge and may also need a merge tool and should have the
options described in the merge-tools help.
import: add --partial flag to create a changeset despite failed hunks

The `hg import` command gains a `--partial` flag. When specified, a commit will
always be created from a patch import. Any hunk that fails to apply will
create .rej file, same as what `hg qimport` would do. This change is mainly
aimed at preserving changeset metadata when applying a patch, something very
important for reviewers.

In case of failure with `--partial`, `hg import` returns 1 and the following
message is displayed:

    patch applied partially
    (fix the .rej files and run `hg commit --amend`)

When multiple patches are imported, we stop at the first one with failed hunks.

In the future, someone may feel brave enough to tackle a --continue flag to
import.
exchange: fix indentation level
exchange: drop dead code

This code have been factorised and moved in its own function by 7d0bbb6dd730. We
actually read the result of this other computation in the very line before the
deleted block.  I somehow forgot to remove the original code, but it is now
dead. Good bye duplicated computation.
merge with stable
setup: make Xcode 5.1 check less specific

Was failing on "5.1\n".
make: add a basic osx mpkg target
packaging: move output directory from build/ to packages/

setuptools owns build/ and dist/ and we want to have our own scheme
docker: update package target to packages/
bundlerepo: update unlink in getremotechanges to use vfs

As per WindowsUTF8 plan, unlink from getremotechanges is updated to use vfs in this change.
vfs: add lexists() in current api

lexists is added in current API of vfs.