sapling/tests
Durham Goode 3ad41b8578 treemanifest: limit autocreatetrees to commits on master
Summary:
Creating a tree for a commit whose parent is not already a tree is expensive.
Let's optimize the autocreatetrees option (which converts manifests to trees
during pull) to only create trees if A) the parent is already a tree, or B) the
parent is master. This way we only pay the expensive part once. It also means
that as new branches fork off master, they will be trees too, since all commits
in the new branch will meet criteria (A).

Test Plan:
Ran hg pull in a large repo over a large pull with 40 different
branches and verified it only paused for the initial master commit.

Reviewers: #mercurial, simonfar

Reviewed By: simonfar

Subscribers: simonfar, mjpieters

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

Signature: t1:4129010:1478260239:1698ada4e3c6a38ab77a94317e75daee4812276f
2016-11-16 13:51:48 -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 test-check: backport test-check-execute from core hg 2016-10-18 17:58:45 +01: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 hg backup command 2016-11-16 02:13:17 -08:00
library.sh infinitepush: add hg backup command 2016-11-16 02:13:17 -08:00
perftest.py remotefilelog: rename getpackpath to getcachepackpath 2016-10-21 11:02:20 -07: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
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-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 arc: do not run lint on unrelated files 2016-10-20 15:44:29 +01:00
test-check-commit-hg.t test-check: backport test-check-commit from core hg 2016-10-18 17:07:43 +01:00
test-check-config-hg.t infinitepush: add mysql waittimeout server-side 2016-11-01 01:44:38 -07:00
test-check-execute-hg.t test-check: backport test-check-execute from core hg 2016-10-18 17:58:45 +01:00
test-check-pyflakes-hg.t treemanifest: limit autocreatetrees to commits on master 2016-11-16 13:51:48 -08:00
test-check-shbang-hg.t test-check: backport test-check-shbang from core hg 2016-10-18 22:28:50 +01:00
test-commitextras.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-ctreemanifest.py test: rename ctreemanifest test 2016-10-27 15:25:29 -07:00
test-debugcommitmessage.t extension to print commit message that would be supplied to editor 2016-10-03 04:39:51 -07: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-diffopts.t fastannotate: add diffopts 2016-10-08 15:58:21 +01:00
test-fastannotate-hg.t fastannotate: use fastannotate to run test-annotate.t 2016-10-21 21:06:20 +01:00
test-fastannotate-perfhack.t fastannotate: handle "draft" paths, and renames correctly 2016-10-09 19:47:01 +01:00
test-fastannotate-protocol.t fastannotate: add a debug command to update cache 2016-11-01 15:10:21 +00:00
test-fastannotate-renames.t fastannotate: handle "draft" paths, and renames correctly 2016-10-09 19:47:01 +01: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: support -r wdir() 2016-10-21 20:50:37 +01: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: implement readdelta for hybridmanifestctx 2016-09-30 02:09:43 +01:00
test-fbamend-next.t fbamend: add new implementations of hg previous and hg next 2016-11-15 18:46:56 -08:00
test-fbamend-nextrebase.t fbamend: add new implementations of hg previous and hg next 2016-11-15 18:46:56 -08:00
test-fbamend-previous.t fbamend: add new implementations of hg previous and hg next 2016-11-15 18:46:56 -08:00
test-fbamend-restack.t fbamend: make restack start from bottom of the stack 2016-11-10 11:25:19 -08:00
test-fbamend-userestack.t fbamend: add config option to use restack instead of preamend bookmark 2016-10-25 11:10:47 -07:00
test-fbamend.t Catch up with upstream changes so that our tests pass 2016-10-21 08:58:52 -07:00
test-fbconduit.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01: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-git-getmeta.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-githelp.t githelp: fix crash in mergebase 2016-10-12 19:47:42 +01: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-infinitepush-backup.t infinitepush: add hg backup command 2016-11-16 02:13:17 -08:00
test-infinitepush-bundlestore.t infinitepush: add hg backup command 2016-11-16 02:13:17 -08:00
test-infinitepush-remotefilelog.t infinitepush: fix remotefilelog interaction 2016-10-18 01:20:12 -07:00
test-infinitepush-remotenames.t Fix test-infinitepush-remotenames.t 2016-10-24 11:48:51 -07:00
test-infinitepush-sql.t infinitepush: add tests for sqlindexapi 2016-11-07 12:35:34 -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 Catch up with upstream changes so that our tests pass 2016-10-21 08:58:52 -07:00
test-morestatus.t doc: replace "commit" where it is used as a noun with "changeset" 2016-09-21 15:45:25 +01: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.t test-perftweaks.t: make OS X compatible 2016-10-25 09:03:15 -07:00
test-phabdiff.t phabdiff: don't require a space when parsing the Tasks field 2016-11-15 12:28:21 -08:00
test-phabstatus.t Add sync status and change the conduit call to differential.querydiffhashes 2016-08-05 11:33:36 -07: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 doc: replace "commit" where it is used as a noun with "changeset" 2016-09-21 15:45:25 +01: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: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-blame.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-bundle2-legacy.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-bundle2.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-bundles.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-cacheprocess.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-clone-tree.t remotefilelog: make test less flaky 2016-10-31 13:39:17 -07:00
test-remotefilelog-clone.t tests: check that local commit data gets transferred 2016-08-29 16:19:52 -07:00
test-remotefilelog-corrupt-cache.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-datapack.py unbreak the remotefilelog tests 2016-09-28 11:53:29 -07:00
test-remotefilelog-gc.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-histpack.py unbreak the remotefilelog tests 2016-09-28 11:53:29 -07:00
test-remotefilelog-http.t treemanifests: include dirlogs in streaming cloning 2016-08-29 16:19:52 -07:00
test-remotefilelog-linknodes.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-local.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-log.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-partial-shallow.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-permissions.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-prefetch.t remotefilelog: check file existence in _revertprefetch 2016-11-07 18:30:10 +00:00
test-remotefilelog-pull-noshallow.t remotefilelog: fix getchangegroup signature 2016-10-31 13:40:33 -07:00
test-remotefilelog-push-pull.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-repack-fast.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-repack.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-sparse.t test-remotefilelog-sparse.t: can't always transfer data in 0.0 seconds 2016-10-25 09:24:57 -07:00
test-remotefilelog-tags.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-wireproto.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07: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 hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01: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 fix scm-prompt test 2016-08-26 11:59:49 -07: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: show inhibited obsolete nodes as x's 2016-10-25 17:22:22 -07:00
test-smartlog-remotenames.t doc: replace "commit" where it is used as a noun with "changeset" 2016-09-21 15:45:25 +01:00
test-smartlog-tweakdefaults.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-smartlog.t smartlog: remove unused edge when indentnonpublic is set 2016-09-17 02:22:36 +01: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-merges.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-sparse-profiles.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-sparse.t tests_: fix tests in accordance with the core changes 2016-10-04 05:25:28 -07: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 Catch up with upstream changes so that our tests pass 2016-10-21 08:58:52 -07: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.t tests: glob away system specific output 2016-10-28 16:50:27 -07:00
test-tweakdefaults-blame.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01: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: rename getpackpath to getcachepackpath 2016-10-21 11:02:20 -07: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`