sapling/tests
Jun Wu 89c9da2b06 fastannotate: add a --deleted option
Summary:
This feature uses the linelog to show all lines ever existed (even deleted) in
a file. Helpful to see the history all the way back to the beginning.

Sadly it has to be inefficient currently as we have chosen to not store line
content (but only numbers) in linelog. Calculating the revisions and line
numbers is very fast because of linelog but resolving the line contents is
painfully slow. We may want a key-value database in the future, answering the
query:

  (path, node, linenum) -> content

How slow is it? With the linelog pre-built, generating the output for
`mercurial/commands.py` needs resolving 400+ revisions and is about 10+
seconds.

Test Plan: Run the changed `test-fastannotate.t`

Reviewers: #sourcecontrol, rmcelroy

Reviewed By: rmcelroy

Subscribers: rmcelroy, mjpieters

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

Signature: t1:3849503:1475086235:83077c571746a7515b5ba75c4df37a1a400d9232
2016-09-11 22:52:29 +01: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 tests: undo lint fix for conduithttp and replace with a suppression 2016-08-01 11:56:48 -07: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 test: backout e221a52 (remove run-tests.py once again) 2015-12-16 16:42:17 +00: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.sh treemanifests: include dirlogs in streaming cloning 2016-08-29 16:19:52 -07:00
lint.py checkcode: add check code test 2016-04-28 10:18:47 -07:00
perftest.py perftest: remove hard coded revs and paths 2016-08-29 16:19:52 -07:00
README spelling: fix numerous spelling errors 2016-04-04 12:48:01 -07: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 insertion to an empty file 2016-09-15 00:59:29 +01:00
test-absorb-rename.t absorb: improve rename handling 2016-09-28 23:56:43 +01:00
test-absorb.t absorb: fix a typo in output 2016-09-12 18:00:54 +02: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 Move ctreemanifest and cdatapack out of remotefilelog 2016-09-21 13:55:12 -07:00
test-commitextras.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01: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 hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01: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-revmap.py fastannotate: add a test for the revmap 2016-09-09 17:33:30 +01:00
test-fastannotate.t fastannotate: add a --deleted option 2016-09-11 22:52:29 +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-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 prune using makeroomfor 2016-07-12 17:09:15 -07:00
test-fbamend-nextrebase.t Add hg next --rebase 2016-09-23 10:39:36 -07:00
test-fbamend.t doc: replace "commit" where it is used as a noun with "changeset" 2016-09-21 15:45:25 +01:00
test-fbconduit.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-fbhistedit-exec-obsolete.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-fbhistedit-exec.t doc: replace "commit" where it is used as a noun with "changeset" 2016-09-21 15:45:25 +01: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 hgext: move single file extensions to hgext3rd 2016-07-08 13:15: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-bundlestore.t infinitepush: add bundle-store option to push 2016-09-28 13:17:25 -07: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-mergedriver.t tests_: fix failures related to recent renames 2016-09-22 07:44:34 -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 hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +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 test-patchpython: do not rely on PYTHONPATH 2016-07-18 14:12:28 +01:00
test-perftweaks.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-phabdiff.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01:00
test-phabstatus.t Add sync status and change the conduit call to differential.querydiffhashes 2016-08-05 11:33:36 -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 test-remotefilelog-clone: fix the order of find output 2016-09-26 19:52:32 +01: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-ctreemanifest.py treemanifest: fix test picking up local ctreemanifest 2016-09-21 13:51:39 -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: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-remotefilelog-pull-noshallow.t remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -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 remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -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 tests_: fix failures related to recent renames 2016-09-22 07:44:34 -07:00
test-simplecache.t hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01: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 remotefilelog: rename tests/test-* to tests/test-remotefilelog-* 2016-08-26 06:11:27 -07:00
test-sqldirstate-shelve.t tests_: fix failures related to recent renames 2016-09-22 07:44:34 -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-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 hgext: move single file extensions to hgext3rd 2016-07-08 13:15:42 +01: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 check-code: enfore checking before using common foreign extensions 2016-07-12 20:39:34 +01: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 [ctree] script to verify correctness 2016-09-18 13:45:33 -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://selenic.com/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`