sapling/tests
Stanislau Hlebik 3ba3866802 fastpartialmatch: add generation number
Summary:
fastpartialmatch index may be incorrect if fastpartialmatch extension was
disabled, then new commits were added and then fastpartialmatch was
enabled back. We need to detect this situation and rebuild the index in
this case.

One approach would be to use _handleinconsistentindex() function to mark index
as invalid. There are a couple of drawbacks to this approach:
1) It requires more significant code changes
2) The output may still be incorrect if hash with the same prefix was added while fastpartialmatch was disabled.

Another approach would be to use header version from index files
(see class _header). That's even worse because we'll need to bump index
version in the code whenever we disable fastpartialmatch.

Third approach would be to use changelog mtime + size as a validation key but
then we need to ensure partialmatch index is written after changelog.

Instead I suggest to use generation numbers. It's just a number in the config
and in the special file inside partialmatch index directory. If the
two doesn't match then index is incorrect and needs to be deleted. The biggest
drawback to this approach is that we need to bump generation number each time
the extension is enabled. I think it should be fine because the one who enables
extensions usually understands it and he or she will bump the generation number.

Test Plan: arc unit

Reviewers: #sourcecontrol, durham, mjpieters

Reviewed By: mjpieters

Subscribers: mjpieters

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

Signature: t1:4571926:1487263035:53419c9ca4e344127f391ac19c1071a826fea3f1
2017-02-16 10:18:22 -08:00
..
blacklist-sqldirstate sqldirstate: call the registered callbacks on wd parent change 2016-08-15 03:46:52 -07: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 datapackstore.getmissing() 2017-02-15 15:19:36 -08:00
cstore-uniondatapackstore.py cstore: implement UnionDatapackStore.get() 2017-02-15 15:19:37 -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 checkcode: fix tests 2016-04-26 13:00:31 -07: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 remotefilelog: move pack file permissions to be in mutablebasepack 2017-01-13 09:42:25 -08:00
README fastannotate: support remotefilelog 2016-11-03 20:55:16 +00: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: implement UnionDatapackStore 2017-02-15 15:19:36 -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 unittests: fix tests that run hg in the main repository 2017-01-18 12:00:54 -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-15 15:19:36 -08:00
test-ctreemanifest.py ctreemanifest: make find() throw KeyError 2017-01-13 09:42:39 -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-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] More extensive fastlog test 2016-08-22 14:42:39 -07: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-evolve.t fastpartialmatch: pretxnchangegroup hook 2017-02-02 05:12:10 -08:00
test-fastpartialmatch-shelve.t fastpartialmatch: use _realopener 2017-02-16 10:17:54 -08:00
test-fastpartialmatch.t fastpartialmatch: add generation number 2017-02-16 10:18:22 -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: make error message configurable 2017-02-14 11:15: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: do not use logfile in tests 2017-01-09 01:38:18 -08:00
test-infinitepush-bundlestore.t infinitepush: pull bookmark during update 2017-02-15 09:33:44 -08:00
test-infinitepush-logging.t infinitepush: log bundlesize server-side 2017-01-10 09:25:46 -08:00
test-infinitepush-pullbackup.t infinitepush: pullbackup command 2016-12-16 08:29:08 -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-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 perftweaks: increase noderev cache coverage 2017-01-31 06:11:25 -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-profiling.t Log interactive time, internal command timing to scuba 2016-09-30 12:32:21 -07: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-datapack.py remotefilelog: move pack file permissions to be in mutablebasepack 2017-01-13 09:42:25 -08:00
test-remotefilelog-gc.t remotefilelog: adjust PYTHONPATH during tests 2017-02-09 18:02:52 -08:00
test-remotefilelog-histpack.py remotefilelog: move pack file permissions to be in mutablebasepack 2017-01-13 09:42:25 -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 Catch up with upstream changes so that our tests pass 2016-10-21 08:58:52 -07: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-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 treemanifeset: fix auto-tree creation for merges 2016-12-31 18:22:38 -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: add test for incremental tree repack 2016-12-02 14:38:00 -08:00
test-treemanifest.t treemanifest: error out if invalid configuration 2017-01-13 14:58:20 -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
treemanifest_correctness.py remotefilelog: move pack file permissions to be in mutablebasepack 2017-01-13 09:42:25 -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`