sapling/tests
Durham Goode 3f65bd2532 treemanifest: don't build pack files that depend on other pack files
Summary:
Previously, when treemanifest would create packs of trees during pull, we
allowed trees to be delta'd against trees in other packs. This resulted in
smaller packs, but if the other pack disappeared for some reason (since it's a
cache), the chain broke.

This patch ensures that the first version of every tree added to a pack is a
full text.

This temporarily makes repacks worse, since the repacker doesn't know about
history to produce deltas when combining packs. The next patch adds history
awareness which improves the repack deltafication.

Test Plan:
Updated the tests, and inspected the new test results to ensure that
all packs only had deltas within the pack.

Reviewers: #mercurial, simonfar

Reviewed By: simonfar

Subscribers: simonfar, mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D4647348

Signature: t1:4647348:1488882214:e850622a853a534fc60caeef604c88c30740c60d
2017-03-07 11:15:25 -08:00
..
blacklist-sqldirstate sqldirstate: call the registered callbacks on wd parent change 2016-08-15 03:46:52 -07:00
bundlerepologger.py infinitepush: reuse bundlerepo 2017-03-06 00:40:49 -08:00
check-code.py checkcode: add check code test 2016-04-28 10:18:47 -07:00
check-foreignext.py check-code: enfore checking before using common foreign extensions 2016-07-12 20:39:34 +01:00
conduithttp.py fbconduit: fix error handling in gitnode() revset 2017-02-15 12:35:06 -08:00
cstore-datapackstore.py cstore: implement markForRefresh on cdatapackstore 2017-03-01 16:55:18 -08:00
cstore-treemanifest.py treemanifest: move tree delta logic up to python layer 2017-03-07 11:15:25 -08:00
cstore-uniondatapackstore.py cstore: implement UnionDatapackStore.get() 2017-02-23 14:03:03 -08:00
dummyext1.py cleanup: make all the code compliant with the i18n rules for ui strings 2016-01-11 10:19:22 -08:00
dummyext2.py cleanup: make all the code compliant with the i18n rules for ui strings 2016-01-11 10:19:22 -08:00
dummyssh Switch to dummyssh for test runs 2013-11-22 13:39:35 -08:00
get-with-headers.py remotefilelog: pass modern check-code 2016-08-26 08:48:07 -07:00
getflogheads.py flogheads: add a test 2016-08-02 10:42:00 -07:00
heredoctest.py checkcode: fix tests 2016-04-26 13:00:31 -07:00
histedit-helpers.sh fb-histedit: Add a histedit extension that adds stop 2014-10-09 10:54:43 -07:00
killdaemons.py Add missing killdaemons 2015-11-09 12:21:39 -08:00
library-infinitepush.sh infinitepush: add new fields to the log 2016-12-21 01:41:44 -08:00
library.sh treemanifest: add test for incremental tree repack 2016-12-02 14:38:00 -08:00
lockfail.py infinitepush: avoid using push during debugbackup 2016-12-07 06:05:29 -08:00
perftest.py ctreemanifest: move treemanifest into cstore 2017-02-23 14:03:03 -08:00
README fastannotate: support remotefilelog 2016-11-03 20:55:16 +00:00
remotefilelog-datapack.py cstore-tests: move remotefilelog py tests to .t test 2017-02-23 14:03:02 -08:00
remotefilelog-histpack.py cstore-tests: move remotefilelog py tests to .t test 2017-02-23 14:03:02 -08:00
require-core-hg.sh test-check: backport test-check-commit from core hg 2016-10-18 17:07:43 +01:00
require-ext.sh hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
run-sqlitedirstate-test.py sqldirstate: the extension 2016-05-06 16:56:45 -07:00
seq.py scmprompt: output only one remote bookmark 2017-01-04 00:23:16 -08:00
silenttestrunner.py store: add unit tests for datapack classes 2016-04-28 15:00:34 -07:00
test-absorb-edit-lines.t absorb: add an interface to edit lines for all involved revisions 2016-09-09 14:06:16 +01:00
test-absorb-filefixupstate.py absorb: fix test-check issues 2016-10-20 14:59:20 +01:00
test-absorb-rename.t absorb: improve rename handling 2016-09-28 23:56:43 +01:00
test-absorb.t absorb: fix an issue where changesets do not get deleted correctly 2016-11-01 21:16:13 +00:00
test-allowunstable.t allowunstable: allow hg record in the middle of a stack 2017-01-26 10:24:16 -08:00
test-arcconfig.t add arcconfig accessors 2016-04-27 09:27:56 -07:00
test-backup.t tests_: fix failures related to recent renames 2016-09-22 07:44:34 -07:00
test-catnotate.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-check-code-hg.t cstore: move python c struct headers out to a file 2017-02-23 14:03:04 -08:00
test-check-commit-hg.t unittests: fix tests that run hg in the main repository 2017-01-18 12:00:54 -08:00
test-check-config-hg.t remotefilelog: make _getfiles step size configurable 2017-02-27 14:45:51 -08:00
test-check-execute-hg.t unittests: fix tests that run hg in the main repository 2017-01-18 12:00:54 -08:00
test-check-pyflakes-hg.t unittests: drop hg10 requirement from pyflakes test 2017-01-18 12:00:54 -08:00
test-check-shbang-hg.t unittests: fix tests that run hg in the main repository 2017-01-18 12:00:54 -08:00
test-commitextras.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-cstore.t cstore: implement UnionDatapackStore 2017-02-23 14:03:03 -08:00
test-debugcommitmessage.t extension to print commit message that would be supplied to editor 2016-10-03 04:39:51 -07:00
test-debuginhibit.t debuginhibit: print out inhibited nodes by default 2017-02-10 11:28:33 -08:00
test-dialect-show.t dialect: new extension to "translate" messages to a dialect 2016-09-21 15:04:42 +01:00
test-diff-since-last-arc-diff.t tests_: fix failures related to recent renames 2016-09-22 07:44:34 -07:00
test-dirsync.t Catch up with upstream changes so that our tests pass 2016-10-21 08:58:52 -07:00
test-edrecord.t edrecord: introduce interactive commits with an editor interface 2017-02-23 11:27:52 -08:00
test-errorredirect.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-extorder.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-fastannotate-corrupt.t tests.t: clean up the shell code a bit 2016-12-01 02:06:57 +00:00
test-fastannotate-diffopts.t tests.t: clean up the shell code a bit 2016-12-01 02:06:57 +00:00
test-fastannotate-hg.t fastannotate: resolve revision number to node 2016-12-07 00:09:04 +00:00
test-fastannotate-perfhack.t tests.t: clean up the shell code a bit 2016-12-01 02:06:57 +00:00
test-fastannotate-protocol.t fastannotate: deal with non-writable fastannotate directory 2017-01-30 11:56:38 +00:00
test-fastannotate-remotefilelog.t fastannotate: work better with remotefilelog 2016-12-19 12:13:51 -08:00
test-fastannotate-renames.t tests.t: clean up the shell code a bit 2016-12-01 02:06:57 +00:00
test-fastannotate-revmap.py fastannotate: add a method to quickly get the last node of the revmap 2016-10-29 19:19:18 +01:00
test-fastannotate.t fastannotate: resolve revision number to node 2016-12-07 00:09:04 +00:00
test-fastlog.t fastlog-hg: use smartset to merge multi-path results 2017-02-17 09:01:50 -08:00
test-fastmanifest-access.t [fastmanifest] split test-fastmanifest.t into multiple files 2016-06-03 17:03:55 -07:00
test-fastmanifest-blackbox.t [fastmanifest] prune the cache only when the revset is empty 2016-07-26 23:35:24 -07:00
test-fastmanifest-concurrency.t [fastmanifest] test to verify the behavior of the background cache worker 2016-06-24 16:17:40 -07:00
test-fastmanifest-permission.t fastmanifest: don't stop when we cannot get the lock 2016-06-13 15:26:55 -07:00
test-fastmanifest-pruning.t [fastmanifest] test to verify that a full cache can accept new data 2016-07-11 17:33:49 -07:00
test-fastmanifest-readfast.t fastmanifest: add the missing readfast method 2016-10-01 01:34:50 +01:00
test-fastmanifest-remotenames.t check-code: enfore checking before using common foreign extensions 2016-07-12 20:39:34 +01:00
test-fastmanifest-writepath.t [fastmanifest] fix incorrect table label 2016-06-24 16:13:39 -07:00
test-fastmanifest.py fastmanifest: fix broken assert 2016-08-24 11:31:06 -07:00
test-fastmanifest.t fastmanifest: wrap manifestlog.get 2017-02-09 17:36:26 -08:00
test-fastpartialmatch-bundlerepo.t fastpartialmatch: do not use fastpartialmatch in bundlerepos 2017-03-02 00:53:09 -08:00
test-fastpartialmatch-evolve.t fastpartialmatch: add amended commits to the index 2017-03-02 01:14:09 -08:00
test-fastpartialmatch-shelve.t fastpartialmatch: use _realopener 2017-02-16 10:17:54 -08:00
test-fastpartialmatch.t fastpartialmatch: add amended commits to the index 2017-03-02 01:14:09 -08:00
test-fbamend-fold.t fbamend: return early on split/fold error 2017-02-01 15:14:17 -08:00
test-fbamend-next.t fbamend: add automatic restacking to split and fold 2017-01-20 00:24:45 -08:00
test-fbamend-nextrebase.t fbamend: edit hint to mention hg restack instead of hg amend --fixup 2017-01-09 11:09:02 -08:00
test-fbamend-previous.t fbamend: add automatic restacking to split and fold 2017-01-20 00:24:45 -08:00
test-fbamend-rebase.t fbamend: make inhibit hook fire after rebase 2017-02-02 11:49:44 -08:00
test-fbamend-restack.t fbamend: minor cosmetic changes to test-fbamend-restack.t 2017-01-31 12:48:16 -08:00
test-fbamend-split.t fbamend: return early on split/fold error 2017-02-01 15:14:17 -08:00
test-fbamend-userestack.t fbamend: add automatic restacking to split and fold 2017-01-20 00:24:45 -08:00
test-fbamend.t fbamend: edit hint to mention hg restack instead of hg amend --fixup 2017-01-09 11:09:02 -08:00
test-fbconduit.t fbconduit: fix error handling in gitnode() revset 2017-02-15 12:35:06 -08:00
test-fbhistedit-exec-obsolete.t tests_: make sure loading sqldirstate does not break fbhistedit 2016-10-20 12:03:43 -07:00
test-fbhistedit-exec.t integration tests for sqldirstate/fbhistedit and "hg amend" test for latter 2016-10-21 06:01:59 -07:00
test-fbhistedit-rebase-interactive.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-fbhistedit-stop-obsolete.t doc: replace "commit" where it is used as a noun with "changeset" 2016-09-21 15:45:25 +01:00
test-fbhistedit-stop.t doc: replace "commit" where it is used as a noun with "changeset" 2016-09-21 15:45:25 +01:00
test-generic-bisect.py fastpartialmatch: use bisect to quickly find matching revisions 2017-02-02 05:12:10 -08:00
test-git-getmeta.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-githelp.t hgext: githelp support for commit -C 2016-12-02 10:41:54 +00:00
test-grepdiff.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-grpcheck.t grpcheck: new extension to check if the user is in given groups 2016-09-20 23:15:09 +01:00
test-hiddenerror.t hiddenerror: fix out of bounds error 2017-02-25 15:26:19 -08:00
test-infinitepush-backup-remotefilelog.t infinitepush: do not backup nodes if there are no filelogs client and server 2017-01-09 01:40:02 -08:00
test-infinitepush-backup-remotenames.t infinitepush: rename debugbackup to pushbackup 2016-12-08 09:24:19 -08:00
test-infinitepush-backup-sql.t infinitepush: rename debugbackup to pushbackup 2016-12-08 09:24:19 -08:00
test-infinitepush-backup.t infinitepush: fix the build 2017-02-24 07:49:17 -08:00
test-infinitepush-bundlestore.t infinitepush: simplify --list-remote option 2017-02-24 05:41:53 -08:00
test-infinitepush-logging.t infinitepush: use util.getuser() instead of ui.username() 2017-03-02 04:47:21 -08:00
test-infinitepush-pullbackup.t infinitepush: add debugcheckbackup 2017-03-07 01:21:44 -08:00
test-infinitepush-remotefilelog.t tweakdefaults: fix check config test 2016-11-30 20:58:08 +00:00
test-infinitepush-remotenames.t tweakdefaults: fix check config test 2016-11-30 20:58:08 +00:00
test-infinitepush-sql.t infinitepush: pull bookmark during update 2017-02-15 09:33:44 -08:00
test-infinitepush-update.t infinitepush: pull node during update 2017-02-10 00:20:54 -08:00
test-inhibitwarn.t check-code: enfore checking before using common foreign extensions 2016-07-12 20:39:34 +01:00
test-linelog-random-edits.t [tests] add missing PYTHONPATH changes 2016-08-25 17:42:23 +01:00
test-linkrevcache-linkrevdb.py linkrevcache: implement the database 2016-11-14 18:03:15 +00:00
test-linkrevcache.t linkrevcache: wrap _adjustlinkrev to take advantage of the linkrev database 2016-11-14 18:04:29 +00:00
test-mergedriver.t test-mergedriver: fix compatibility with upstream 2017-02-15 15:08:15 -08:00
test-morestatus.t morestatus: suggest --clean for unfinished update state 2017-01-03 16:25:52 +00:00
test-myparent.t tests_: make test-myparent.t resilient to BSD vs GNU grep differences 2017-01-20 08:33:49 -08:00
test-newhiddencache.t newhiddencache: fix mac build 2017-03-06 07:31:57 -08:00
test-nointerrupt.t test-nointerrupt.t: using OSX equivalent of timeout 2016-10-18 11:20:09 +01:00
test-ownercheck.t ownercheck: new extension to prevent operations on repos not owned 2016-07-26 13:10:15 +01:00
test-patchpython.py patchpython: fix test-check tests 2016-10-20 16:03:31 +01:00
test-perftweaks-remotenames.t perftweaks: fix noderev cache for non existent nodes 2017-02-01 08:03:49 -08:00
test-perftweaks.t Send a single string (normal) to scuba 2017-02-22 14:36:28 -08:00
test-phabdiff.t templates: fix help messages for template keywords 2017-01-19 12:52:54 -08:00
test-phabstatus.t templates: fix help messages for template keywords 2017-01-19 12:52:54 -08:00
test-pull-createmarkers-hide-later.t tests_: fix failures related to recent renames 2016-09-22 07:44:34 -07:00
test-pull-createmarkers.t tests_: fix failures related to recent renames 2016-09-22 07:44:34 -07:00
test-pushrebase-protection.t doc: replace "commit" where it is used as a noun with "changeset" 2016-09-21 15:45:25 +01:00
test-pushrebase-remotenames.t test-pushrebase-remotenames: add necessary spaces to fix the test 2016-09-26 19:55:06 +01:00
test-pushrebase.t test: fix osx compatibility 2017-01-03 13:09:31 -08:00
test-pushvars-remotenames.t check-code: enfore checking before using common foreign extensions 2016-07-12 20:39:34 +01:00
test-pushvars.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-rage.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-remotefilelog-bad-configs.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-blame.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-bundle2-legacy.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-bundle2.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-bundles.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-cacheprocess.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-clone-tree.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-clone.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-corrupt-cache.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-gc.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-http.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-linknodes.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-local.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-log.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-partial-shallow.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-permissions.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-prefetch.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-pull-noshallow.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-push-pull.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-repack-fast.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-repack.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-sparse.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-tags.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-wireproto.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-reset-remotenames.t check-code: enfore checking before using common foreign extensions 2016-07-12 20:39:34 +01:00
test-reset.t check-code: enfore checking before using common foreign extensions 2016-07-12 20:39:34 +01:00
test-sampling.t sampling: stop arcanist from interfering with sampling tests 2016-12-16 23:19:23 +00:00
test-scm-prompt-compat.t scm-prompt: add compatiblity layer 2016-07-22 16:31:51 -07:00
test-scm-prompt-git.t scm-prompt: add test for git behavior 2016-04-29 10:49:36 -07:00
test-scm-prompt-hg.t scmprompt: output only one remote bookmark 2017-01-04 00:23:16 -08:00
test-show.t tests_: fix test-show.t 2017-03-01 12:49:53 -08:00
test-simplecache.t Don't run the memcache test on Macs. 2016-10-24 11:49:54 -07:00
test-smartlog-inhibit.t smartlog: work better with repos where there is no master 2017-02-14 17:25:12 -08:00
test-smartlog-obsolete.t fb-hgext: fix test to match upstream fold changes 2017-01-20 06:23:56 -08:00
test-smartlog-remotenames.t smartlog: work better with repos where there is no master 2017-02-14 17:25:12 -08:00
test-smartlog-tweakdefaults.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-smartlog.t smartlog: work better with repos where there is no master 2017-02-14 17:25:12 -08:00
test-sparse-clear.t creates hg sparse --clear-rules option 2017-02-27 10:53:50 -08:00
test-sparse-clone.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-sparse-extensions.t sparse: remove the failed attempt to change watchman config during test 2016-08-26 11:59:52 -07:00
test-sparse-import.t sparse: add rule import feature 2016-12-22 12:50:08 +00:00
test-sparse-merges.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-sparse-profiles.t Allow sparse profiles to contain comments 2017-02-13 04:17:51 -08:00
test-sparse.t testing: fix spacing for merge conflict markers 2016-11-29 07:23:32 -08:00
test-sqldirstate-fbhistedit.t integration tests for sqldirstate/fbhistedit and "hg amend" test for latter 2016-10-21 06:01:59 -07:00
test-sqldirstate-shelve.t shelve: fix obs-shelve tests in accordance with upstream changes 2017-01-20 06:23:56 -08:00
test-sqldirstate-upgrade.t tests: fix checkcode and simple test failures 2016-08-01 11:54:13 -07:00
test-sshaskpass.py sshaskpass: enable ssh to ask password if running with chg 2016-07-17 20:35:34 +01:00
test-sshaskpass.py.out sshaskpass: enable ssh to ask password if running with chg 2016-07-17 20:35:34 +01:00
test-syncstatus.t Add sync status and change the conduit call to differential.querydiffhashes 2016-08-05 11:33:36 -07:00
test-treemanifest-autoconvert.t treemanifest: add support for creating history packs 2017-03-07 11:15:25 -08:00
test-treemanifest-fastmanifest.t treemanifest: fix test globs 2017-01-12 16:13:43 -08:00
test-treemanifest-noflat.t [treemanifest] improve test glob patterns 2016-12-08 11:47:37 -08:00
test-treemanifest-repack.t treemanifest: don't build pack files that depend on other pack files 2017-03-07 11:15:25 -08:00
test-treemanifest.t treemanifest: don't build pack files that depend on other pack files 2017-03-07 11:15:25 -08:00
test-tweakdefaults-blame.t tweakdefaults: make --phabdiff use shortdate on --quiet as in default blame 2017-01-10 08:48:02 -08:00
test-tweakdefaults-bookmarks.t test-tweakdefaults-bookmarks.t: fix typo 2016-08-15 18:45:19 +01:00
test-tweakdefaults-grep.t xargs on OS X does not return 123 2016-10-25 08:09:23 -07:00
test-tweakdefaults-histgrep.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-tweakdefaults-opawarecommands.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-tweakdefaults-ordering.t check-code: enfore checking before using common foreign extensions 2016-07-12 20:39:34 +01:00
test-tweakdefaults-remotenames.t check-code: enfore checking before using common foreign extensions 2016-07-12 20:39:34 +01:00
test-tweakdefaults.t xargs on OS X does not return 123 2016-10-25 08:09:23 -07:00
test-uncommit-bookmark.t Implement 'hg uncommit' 2016-08-17 13:43:25 -07:00
test-uncommit-merge.t Implement 'hg uncommit' 2016-08-17 13:43:25 -07:00
test-uncommit.t Implement 'hg uncommit' 2016-08-17 13:43:25 -07:00
test-whereami.t whereami: add extension 2017-02-17 16:01:02 +00:00
treemanifest_correctness.py ctreemanifest: move treemanifest into cstore 2017-02-23 14:03:03 -08:00
waitforfile.py [fastmanifest] add the ability for waitforfile.py to wait for a file to materialize 2016-06-24 16:17:18 -07:00

How to run Facebook experimental extensions tests
=================================================

Running the tests
-----------------

To run the tests, `cd` into this directory (./tests/) and run the `run-tests.py`
script from the core Mercurial repository (tests directory too).

For example if you have a 'hg-crew' repository checked out next to this one,
use:

  ../../hg-crew/tests/run-tests.py

Obtaining the test runners
--------------------------

If you do not already have a copy of the Mercurial repository, you can obtains
one with:

  $ hg clone http://mercurial-scm.org/hg

Running against various Mercurial versions
------------------------------------------

By default, the test runners will run against the version of Mercurial in the
repository it lives in. you can run against other version of Mercurial using
the --with-hg=PATH flag. For example to run against the installed version of
Mercurial you can use --with-hg=`which hg`