Mercurial > hg
view contrib/python3-whitelist @ 46582:b0a3ca02d17a
copies-rust: implement PartialEqual manually
Now that we know that each (dest, rev) pair has at most a unique CopySource, we
can simplify comparison a lot.
This "simple" step buy a good share of the previous slowdown back in some case:
Repo Case Source-Rev Dest-Rev # of revisions old time new time Difference Factor time per rev
---------------------------------------------------------------------------------------------------------------------------------------------------------------
mozilla-try x00000_revs_x00000_added_x000_copies 9b2a99adc05e 8e29777b48e6 : 382065 revs, 43.304637 s, 34.443661 s, -8.860976 s, × 0.7954, 90 µs/rev
Full benchmark:
Repo Case Source-Rev Dest-Rev # of revisions old time new time Difference Factor time per rev
---------------------------------------------------------------------------------------------------------------------------------------------------------------
mercurial x_revs_x_added_0_copies ad6b123de1c7 39cfcef4f463 : 1 revs, 0.000043 s, 0.000043 s, +0.000000 s, × 1.0000, 43 µs/rev
mercurial x_revs_x_added_x_copies 2b1c78674230 0c1d10351869 : 6 revs, 0.000114 s, 0.000117 s, +0.000003 s, × 1.0263, 19 µs/rev
mercurial x000_revs_x000_added_x_copies 81f8ff2a9bf2 dd3267698d84 : 1032 revs, 0.004937 s, 0.004892 s, -0.000045 s, × 0.9909, 4 µs/rev
pypy x_revs_x_added_0_copies aed021ee8ae8 099ed31b181b : 9 revs, 0.000339 s, 0.000196 s, -0.000143 s, × 0.5782, 21 µs/rev
pypy x_revs_x000_added_0_copies 4aa4e1f8e19a 359343b9ac0e : 1 revs, 0.000049 s, 0.000050 s, +0.000001 s, × 1.0204, 50 µs/rev
pypy x_revs_x_added_x_copies ac52eb7bbbb0 72e022663155 : 7 revs, 0.000202 s, 0.000117 s, -0.000085 s, × 0.5792, 16 µs/rev
pypy x_revs_x00_added_x_copies c3b14617fbd7 ace7255d9a26 : 1 revs, 0.000409 s, 0.6f1f4a s, -0.000087 s, × 0.7873, 322 µs/rev
pypy x_revs_x000_added_x000_copies df6f7a526b60 a83dc6a2d56f : 6 revs, 0.011984 s, 0.011949 s, -0.000035 s, × 0.9971, 1991 µs/rev
pypy x000_revs_xx00_added_0_copies 89a76aede314 2f22446ff07e : 4785 revs, 0.050820 s, 0.050802 s, -0.000018 s, × 0.9996, 10 µs/rev
pypy x000_revs_x000_added_x_copies 8a3b5bfd266e 2c68e87c3efe : 6780 revs, 0.087953 s, 0.088090 s, +0.000137 s, × 1.0016, 12 µs/rev
pypy x000_revs_x000_added_x000_copies 89a76aede314 7b3dda341c84 : 5441 revs, 0.062902 s, 0.062079 s, -0.000823 s, × 0.9869, 11 µs/rev
pypy x0000_revs_x_added_0_copies d1defd0dc478 c9cb1334cc78 : 43645 revs, 0.679234 s, 0.635337 s, -0.043897 s, × 0.9354, 14 µs/rev
pypy x0000_revs_xx000_added_0_copies bf2c629d0071 4ffed77c095c : 2 revs, 0.013095 s, 0.013262 s, +0.000167 s, × 1.0128, 6631 µs/rev
pypy x0000_revs_xx000_added_x000_copies 08ea3258278e d9fa043f30c0 : 11316 revs, 0.120910 s, 0.120085 s, -0.000825 s, × 0.9932, 10 µs/rev
netbeans x_revs_x_added_0_copies fb0955ffcbcd a01e9239f9e7 : 2 revs, 0.000087 s, 0.000085 s, -0.000002 s, × 0.9770, 42 µs/rev
netbeans x_revs_x000_added_0_copies 6f360122949f 20eb231cc7d0 : 2 revs, 0.000107 s, 0.000110 s, +0.000003 s, × 1.0280, 55 µs/rev
netbeans x_revs_x_added_x_copies 1ada3faf6fb6 5a39d12eecf4 : 3 revs, 0.000186 s, 0.000177 s, -0.000009 s, × 0.9516, 59 µs/rev
netbeans x_revs_x00_added_x_copies 35be93ba1e2c 9eec5e90c05f : 9 revs, 0.000754 s, 0.000743 s, -0.000011 s, × 0.9854, 82 µs/rev
netbeans x000_revs_xx00_added_0_copies eac3045b4fdd 51d4ae7f1290 : 1421 revs, 0.010443 s, 0.010168 s, -0.000275 s, × 0.9737, 7 µs/rev
netbeans x000_revs_x000_added_x_copies e2063d266acd 6081d72689dc : 1533 revs, 0.015697 s, 0.015946 s, +0.000249 s, × 1.0159, 10 µs/rev
netbeans x000_revs_x000_added_x000_copies ff453e9fee32 411350406ec2 : 5750 revs, 0.063528 s, 0.062712 s, -0.000816 s, × 0.9872, 10 µs/rev
netbeans x0000_revs_xx000_added_x000_copies 588c2d1ced70 1aad62e59ddd : 66949 revs, 0.545515 s, 0.523832 s, -0.021683 s, × 0.9603, 7 µs/rev
mozilla-central x_revs_x_added_0_copies 3697f962bb7b 7015fcdd43a2 : 2 revs, 0.000089 s, 0.000090 s, +0.000001 s, × 1.0112, 45 µs/rev
mozilla-central x_revs_x000_added_0_copies dd390860c6c9 40d0c5bed75d : 8 revs, 0.000265 s, 0.000264 s, -0.000001 s, × 0.9962, 33 µs/rev
mozilla-central x_revs_x_added_x_copies 8d198483ae3b 14207ffc2b2f : 9 revs, 0.000381 s, 0.000187 s, -0.000194 s, × 0.4908, 20 µs/rev
mozilla-central x_revs_x00_added_x_copies 98cbc58cc6bc 446a150332c3 : 7 revs, 0.000672 s, 0.000665 s, -0.000007 s, × 0.9896, 95 µs/rev
mozilla-central x_revs_x000_added_x000_copies 3c684b4b8f68 0a5e72d1b479 : 3 revs, 0.003497 s, 0.003556 s, +0.000059 s, × 1.0169, 1185 µs/rev
mozilla-central x_revs_x0000_added_x0000_copies effb563bb7e5 c07a39dc4e80 : 6 revs, 0.073204 s, 0.071345 s, -0.001859 s, × 0.9746, 11890 µs/rev
mozilla-central x000_revs_xx00_added_0_copies 6100d773079a 04a55431795e : 1593 revs, 0.006482 s, 0.006551 s, +0.000069 s, × 1.0106, 4 µs/rev
mozilla-central x000_revs_x000_added_x_copies 9f17a6fc04f9 2d37b966abed : 41 revs, 0.005066 s, 0.005078 s, +0.000012 s, × 1.0024, 123 µs/rev
mozilla-central x000_revs_x000_added_x000_copies 7c97034feb78 4407bd0c6330 : 7839 revs, 0.065707 s, 0.065823 s, +0.000116 s, × 1.0018, 8 µs/rev
mozilla-central x0000_revs_xx000_added_0_copies 9eec5917337d 67118cc6dcad : 615 revs, 0.026800 s, 0.027050 s, +0.000250 s, × 1.0093, 43 µs/rev
mozilla-central x0000_revs_xx000_added_x000_copies f78c615a656c 96a38b690156 : 30263 revs, 0.203856 s, 0.202443 s, -0.001413 s, × 0.9931, 6 µs/rev
mozilla-central x00000_revs_x0000_added_x0000_copies 6832ae71433c 4c222a1d9a00 : 153721 revs, 1.293394 s, 1.261583 s, -0.031811 s, × 0.9754, 8 µs/rev
mozilla-central x00000_revs_x00000_added_x000_copies 76caed42cf7c 1daa622bbe42 : 204976 revs, 1.698239 s, 1.643869 s, -0.054370 s, × 0.9680, 8 µs/rev
mozilla-try x_revs_x_added_0_copies aaf6dde0deb8 9790f499805a : 2 revs, 0.000875 s, 0.000868 s, -0.000007 s, × 0.9920, 434 µs/rev
mozilla-try x_revs_x000_added_0_copies d8d0222927b4 5bb8ce8c7450 : 2 revs, 0.000891 s, 0.000887 s, -0.000004 s, × 0.9955, 443 µs/rev
mozilla-try x_revs_x_added_x_copies 092fcca11bdb 936255a0384a : 4 revs, 0.000292 s, 0.000168 s, -0.000124 s, × 0.5753, 42 µs/rev
mozilla-try x_revs_x00_added_x_copies b53d2fadbdb5 017afae788ec : 2 revs, 0.003939 s, 0.001160 s, -0.002779 s, × 0.2945, 580 µs/rev
mozilla-try x_revs_x000_added_x000_copies 20408ad61ce5 6f0ee96e21ad : 1 revs, 0.033027 s, 0.033016 s, -0.000011 s, × 0.9997, 33016 µs/rev
mozilla-try x_revs_x0000_added_x0000_copies effb563bb7e5 c07a39dc4e80 : 6 revs, 0.073703 s, 0.073312 s, -0.39ae31 s, × 0.9947, 12218 µs/rev
mozilla-try x000_revs_xx00_added_0_copies 6100d773079a 04a55431795e : 1593 revs, 0.006469 s, 0.006485 s, +0.000016 s, × 1.0025, 4 µs/rev
mozilla-try x000_revs_x000_added_x_copies 9f17a6fc04f9 2d37b966abed : 41 revs, 0.005278 s, 0.005494 s, +0.000216 s, × 1.0409, 134 µs/rev
mozilla-try x000_revs_x000_added_x000_copies 1346fd0130e4 4c65cbdabc1f : 6657 revs, 0.064995 s, 0.064879 s, -0.000116 s, × 0.9982, 9 µs/rev
mozilla-try x0000_revs_x_added_0_copies 63519bfd42ee a36a2a865d92 : 40314 revs, 0.301041 s, 0.301469 s, +0.000428 s, × 1.0014, 7 µs/rev
mozilla-try x0000_revs_x_added_x_copies 9fe69ff0762d bcabf2a78927 : 38690 revs, 0.285575 s, 0.297113 s, +0.011538 s, × 1.0404, 7 µs/rev
mozilla-try x0000_revs_xx000_added_x_copies 156f6e2674f2 4d0f2c178e66 : 8598 revs, 0.085597 s, 0.085890 s, +0.000293 s, × 1.0034, 9 µs/rev
mozilla-try x0000_revs_xx000_added_0_copies 9eec5917337d 67118cc6dcad : 615 revs, 0.027118 s, 0.027718 s, +0.000600 s, × 1.0221, 45 µs/rev
mozilla-try x0000_revs_xx000_added_x000_copies 89294cd501d9 7ccb2fc7ccb5 : 97052 revs, 2.119204 s, 2.048949 s, -0.070255 s, × 0.9668, 21 µs/rev
mozilla-try x0000_revs_x0000_added_x0000_copies e928c65095ed e951f4ad123a : 52031 revs, 0.701479 s, 0.685924 s, -0.015555 s, × 0.9778, 13 µs/rev
mozilla-try x00000_revs_x_added_0_copies 6a320851d377 1ebb79acd503 : 363753 revs, 4.482399 s, 4.482891 s, +0.000492 s, × 1.0001, 12 µs/rev
mozilla-try x00000_revs_x00000_added_0_copies dc8a3ca7010e d16fde900c9c : 34414 revs, 0.574082 s, 0.577633 s, +0.003551 s, × 1.0062, 16 µs/rev
mozilla-try x00000_revs_x_added_x_copies 5173c4b6f97c 95d83ee7242d : 362229 revs, 4.480366 s, 4.397816 s, -0.082550 s, × 0.9816, 12 µs/rev
mozilla-try x00000_revs_x000_added_x_copies 9126823d0e9c ca82787bb23c : 359344 revs, 4.369070 s, 4.370538 s, +0.001468 s, × 1.0003, 12 µs/rev
mozilla-try x00000_revs_x0000_added_x0000_copies 8d3fafa80d4b eb884023b810 : 192665 revs, 1.592506 s, 1.570439 s, -0.022067 s, × 0.9861, 8 µs/rev
mozilla-try x00000_revs_x00000_added_x0000_copies 1b661134e2ca 1ae03d022d6d : 228985 revs, 87.824489 s, 88.388512 s, +0.564023 s, × 1.0064, 386 µs/rev
mozilla-try x00000_revs_x00000_added_x000_copies 9b2a99adc05e 8e29777b48e6 : 382065 revs, 43.304637 s, 34.443661 s, -8.860976 s, × 0.7954, 90 µs/rev
private : 459513 revs, 33.853687 s, 27.370148 s, -6.483539 s, × 0.8085, 59 µs/rev
Differential Revision: https://phab.mercurial-scm.org/D9653
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 16 Dec 2020 11:11:05 +0100 |
parents | a7abc6081bc5 |
children | 609a3b8058c3 |
line wrap: on
line source
test-abort-checkin.t test-absorb-edit-lines.t test-absorb-filefixupstate.py test-absorb-phase.t test-absorb-rename.t test-absorb-strip.t test-absorb-unfinished.t test-absorb.t test-acl.t test-add.t test-addremove-similar.t test-addremove.t test-alias.t test-amend-subrepo.t test-amend.t test-ancestor.py test-annotate.py test-annotate.t test-arbitraryfilectx.t test-archive-symlinks.t test-archive.t test-atomictempfile.py test-audit-path.t test-audit-subrepo.t test-automv.t test-backout.t test-backwards-remove.t test-bad-extension.t test-bad-pull.t test-basic.t test-batching.py test-bdiff.py test-bheads.t test-bisect.t test-bisect2.t test-bisect3.t test-blackbox.t test-bookflow.t test-bookmarks-corner-case.t test-bookmarks-current.t test-bookmarks-merge.t test-bookmarks-pushpull.t test-bookmarks-rebase.t test-bookmarks-strip.t test-bookmarks.t test-branch-change.t test-branch-option.t test-branch-tag-confict.t test-branches.t test-bugzilla.t test-bundle-phases.t test-bundle-r.t test-bundle-type.t test-bundle-vs-outgoing.t test-bundle.t test-bundle2-exchange.t test-bundle2-format.t test-bundle2-multiple-changegroups.t test-bundle2-pushback.t test-bundle2-remote-changegroup.t test-cache-abuse.t test-cappedreader.py test-casecollision-merge.t test-casecollision.t test-casefolding.t test-cat.t test-cbor.py test-censor.t test-changelog-exec.t test-check-code.t test-check-commit.t test-check-config.t test-check-execute.t test-check-help.t test-check-interfaces.py test-check-module-imports.t test-check-py3-compat.t test-check-pyflakes.t test-check-pylint.t test-check-shbang.t test-children.t test-churn.t test-clone-cgi.t test-clone-pull-corruption.t test-clone-r.t test-clone-uncompressed.t test-clone-update-order.t test-clone.t test-clonebundles.t test-close-head.t test-commandserver.t test-commit-amend.t test-commit-interactive-curses.t test-commit-interactive.t test-commit-multiple.t test-commit-unresolved.t test-commit.t test-committer.t test-completion.t test-config-env.py test-config.t test-conflict.t test-confused-revert.t test-context-metadata.t test-context.py test-contrib-check-code.t test-contrib-check-commit.t test-contrib-dumprevlog.t test-contrib-emacs.t test-contrib-perf.t test-contrib-relnotes.t test-contrib-testparseutil.t test-contrib.t test-convert-authormap.t test-convert-clonebranches.t test-convert-cvs-branch.t test-convert-cvs-detectmerge.t test-convert-cvs-synthetic.t test-convert-cvs.t test-convert-cvsnt-mergepoints.t test-convert-datesort.t test-convert-filemap.t test-convert-git.t test-convert-hg-sink.t test-convert-hg-source.t test-convert-hg-startrev.t test-convert-identity.t test-convert-mtn.t test-convert-splicemap.t test-convert-svn-sink.t test-convert-tagsbranch-topology.t test-convert.t test-copies-in-changeset.t test-copies-unrelated.t test-copies.t test-copy-move-merge.t test-copy.t test-copytrace-heuristics.t test-custom-filters.t test-debugbuilddag.t test-debugbundle.t test-debugcommands.t test-debugextensions.t test-debugindexdot.t test-debugrename.t test-default-push.t test-demandimport.py test-devel-warnings.t test-diff-antipatience.t test-diff-binary-file.t test-diff-change.t test-diff-color.t test-diff-copy-depth.t test-diff-hashes.t test-diff-ignore-whitespace.t test-diff-indent-heuristic.t test-diff-issue2761.t test-diff-newlines.t test-diff-reverse.t test-diff-subdir.t test-diff-unified.t test-diff-upgrade.t test-diffdir.t test-diffstat.t test-directaccess.t test-dirstate-backup.t test-dirstate-nonnormalset.t test-dirstate-race.t test-dirstate-race2.t test-dirstate.t test-dispatch.py test-dispatch.t test-doctest.py test-double-merge.t test-drawdag.t test-duplicateoptions.py test-editor-filename.t test-empty-dir.t test-empty-file.t test-empty-group.t test-empty.t test-encode.t test-encoding-align.t test-encoding-func.py test-encoding-textwrap.t test-encoding.t test-eol-add.t test-eol-clone.t test-eol-hook.t test-eol-patch.t test-eol-tag.t test-eol-update.t test-eol.t test-eolfilename.t test-excessive-merge.t test-exchange-obsmarkers-case-A1.t test-exchange-obsmarkers-case-A2.t test-exchange-obsmarkers-case-A3.t test-exchange-obsmarkers-case-A4.t test-exchange-obsmarkers-case-A5.t test-exchange-obsmarkers-case-A6.t test-exchange-obsmarkers-case-A7.t test-exchange-obsmarkers-case-B1.t test-exchange-obsmarkers-case-B2.t test-exchange-obsmarkers-case-B3.t test-exchange-obsmarkers-case-B4.t test-exchange-obsmarkers-case-B5.t test-exchange-obsmarkers-case-B6.t test-exchange-obsmarkers-case-B7.t test-exchange-obsmarkers-case-C1.t test-exchange-obsmarkers-case-C2.t test-exchange-obsmarkers-case-C3.t test-exchange-obsmarkers-case-C4.t test-exchange-obsmarkers-case-D1.t test-exchange-obsmarkers-case-D2.t test-exchange-obsmarkers-case-D3.t test-exchange-obsmarkers-case-D4.t test-execute-bit.t test-export.t test-extdata.t test-extdiff.t test-extension-timing.t test-extension.t test-extensions-afterloaded.t test-extensions-wrapfunction.py test-extra-filelog-entry.t test-fastannotate-corrupt.t test-fastannotate-diffopts.t test-fastannotate-hg.t test-fastannotate-perfhack.t test-fastannotate-protocol.t test-fastannotate-renames.t test-fastannotate-revmap.py test-fastannotate.t test-fetch.t test-filebranch.t test-filecache.py test-filelog.py test-fileset-generated.t test-fileset.t test-fix-metadata.t test-fix-topology.t test-fix.t test-flagprocessor.t test-flags.t test-fncache.t test-gendoc-da.t test-gendoc-de.t test-gendoc-el.t test-gendoc-fr.t test-gendoc-it.t test-gendoc-ja.t test-gendoc-pt_BR.t test-gendoc-ro.t test-gendoc-ru.t test-gendoc-sv.t test-gendoc-zh_CN.t test-gendoc-zh_TW.t test-gendoc.t test-generaldelta.t test-getbundle.t test-git-export.t test-githelp.t test-globalopts.t test-glog-beautifygraph.t test-glog-topological.t test-glog.t test-gpg.t test-graft.t test-grep.t test-hardlinks.t test-help-hide.t test-help.t test-hg-parseurl.py test-hghave.t test-hgignore.t test-hgk.t test-hgrc.t test-hgweb-annotate-whitespace.t test-hgweb-auth.py test-hgweb-bundle.t test-hgweb-commands.t test-hgweb-csp.t test-hgweb-descend-empties.t test-hgweb-diffs.t test-hgweb-empty.t test-hgweb-filelog.t test-hgweb-json.t test-hgweb-no-path-info.t test-hgweb-no-request-uri.t test-hgweb-non-interactive.t test-hgweb-raw.t test-hgweb-removed.t test-hgweb-symrev.t test-hgweb.t test-hgwebdir-paths.py test-hgwebdir.t test-hgwebdirsym.t test-highlight.t test-histedit-arguments.t test-histedit-base.t test-histedit-bookmark-motion.t test-histedit-commute.t test-histedit-drop.t test-histedit-edit.t test-histedit-fold-non-commute.t test-histedit-fold.t test-histedit-merge-tools.t test-histedit-no-backup.t test-histedit-no-change.t test-histedit-non-commute-abort.t test-histedit-non-commute.t test-histedit-obsolete.t test-histedit-outgoing.t test-histedit-templates.t test-http-api-httpv2.t test-http-api.t test-http-bad-server.t test-http-branchmap.t test-http-bundle1.t test-http-clone-r.t test-http-permissions.t test-http-protocol.t test-http-proxy.t test-http.t test-https.t test-hybridencode.py test-i18n.t test-identify.t test-impexp-branch.t test-import-bypass.t test-import-context.t test-import-eol.t test-import-git.t test-import-merge.t test-import-unknown.t test-import.t test-imports-checker.t test-incoming-outgoing.t test-infinitepush-bundlestore.t test-infinitepush-ci.t test-infinitepush.t test-inherit-mode.t test-init.t test-install.t test-issue1089.t test-issue1102.t test-issue1175.t test-issue1306.t test-issue1438.t test-issue1502.t test-issue1802.t test-issue1877.t test-issue1993.t test-issue2137.t test-issue3084.t test-issue4074.t test-issue522.t test-issue586.t test-issue5979.t test-issue612.t test-issue619.t test-issue660.t test-issue672.t test-issue842.t test-journal-exists.t test-journal-share.t test-journal.t test-keyword.t test-known.t test-largefiles-cache.t test-largefiles-misc.t test-largefiles-small-disk.t test-largefiles-update.t test-largefiles-wireproto.t test-largefiles.t test-lfconvert.t test-lfs-bundle.t test-lfs-largefiles.t test-lfs-pointer.py test-lfs-serve.t test-lfs-test-server.t test-lfs.t test-linelog.py test-linerange.py test-locate.t test-lock-badness.t test-lock.py test-log-exthook.t test-log-linerange.t test-log.t test-logexchange.t test-logtoprocess.t test-lrucachedict.py test-mactext.t test-mailmap.t test-manifest-merging.t test-manifest.py test-manifest.t test-match.py test-mdiff.py test-merge-changedelete.t test-merge-closedheads.t test-merge-commit.t test-merge-criss-cross.t test-merge-default.t test-merge-force.t test-merge-halt.t test-merge-internal-tools-pattern.t test-merge-local.t test-merge-no-file-change.t test-merge-remove.t test-merge-revert.t test-merge-revert2.t test-merge-subrepos.t test-merge-symlinks.t test-merge-tools.t test-merge-types.t test-merge1.t test-merge10.t test-merge2.t test-merge4.t test-merge5.t test-merge6.t test-merge7.t test-merge8.t test-merge9.t test-minifileset.py test-minirst.py test-missing-capability.t test-mq-eol.t test-mq-git.t test-mq-guards.t test-mq-header-date.t test-mq-header-from.t test-mq-merge.t test-mq-missingfiles.t test-mq-pull-from-bundle.t test-mq-qclone-http.t test-mq-qdelete.t test-mq-qdiff.t test-mq-qfold.t test-mq-qgoto.t test-mq-qimport-fail-cleanup.t test-mq-qimport.t test-mq-qnew.t test-mq-qpush-exact.t test-mq-qpush-fail.t test-mq-qqueue.t test-mq-qrefresh-interactive.t test-mq-qrefresh-replace-log-message.t test-mq-qrefresh.t test-mq-qrename.t test-mq-qsave.t test-mq-safety.t test-mq-subrepo-svn.t test-mq-subrepo.t test-mq-symlinks.t test-mq.t test-mv-cp-st-diff.t test-narrow-acl.t test-narrow-archive.t test-narrow-clone-no-ellipsis.t test-narrow-clone-non-narrow-server.t test-narrow-clone-nonlinear.t test-narrow-clone-stream.t test-narrow-clone.t test-narrow-commit.t test-narrow-copies.t test-narrow-debugcommands.t test-narrow-debugrebuilddirstate.t test-narrow-exchange-merges.t test-narrow-exchange.t test-narrow-expanddirstate.t test-narrow-merge.t test-narrow-patch.t test-narrow-patterns.t test-narrow-pull.t test-narrow-rebase.t test-narrow-shallow-merges.t test-narrow-shallow.t test-narrow-share.t test-narrow-sparse.t test-narrow-strip.t test-narrow-trackedcmd.t test-narrow-update.t test-narrow-widen-no-ellipsis.t test-narrow-widen.t test-narrow.t test-nested-repo.t test-newbranch.t test-newcgi.t test-newercgi.t test-nointerrupt.t test-notify-changegroup.t test-obshistory.t test-obsmarker-template.t test-obsmarkers-effectflag.t test-obsolete-bounds-checking.t test-obsolete-bundle-strip.t test-obsolete-changeset-exchange.t test-obsolete-checkheads.t test-obsolete-distributed.t test-obsolete-divergent.t test-obsolete-tag-cache.t test-obsolete.t test-oldcgi.t test-origbackup-conflict.t test-pager-legacy.t test-pager.t test-parents.t test-parse-date.t test-parseindex.t test-parseindex2.py test-patch-offset.t test-patch.t test-patchbomb-bookmark.t test-patchbomb-tls.t test-patchbomb.t test-pathconflicts-basic.t test-pathconflicts-merge.t test-pathconflicts-update.t test-pathencode.py test-paths.t test-pending.t test-permissions.t test-phabricator.t test-phase-archived.t test-phases-exchange.t test-phases.t test-profile.t test-progress.t test-propertycache.py test-pull-branch.t test-pull-bundle.t test-pull-http.t test-pull-permission.t test-pull-pull-corruption.t test-pull-r.t test-pull-update.t test-pull.t test-purge.t test-push-cgi.t test-push-checkheads-partial-C1.t test-push-checkheads-partial-C2.t test-push-checkheads-partial-C3.t test-push-checkheads-partial-C4.t test-push-checkheads-pruned-B1.t test-push-checkheads-pruned-B2.t test-push-checkheads-pruned-B3.t test-push-checkheads-pruned-B4.t test-push-checkheads-pruned-B5.t test-push-checkheads-pruned-B6.t test-push-checkheads-pruned-B7.t test-push-checkheads-pruned-B8.t test-push-checkheads-superceed-A1.t test-push-checkheads-superceed-A2.t test-push-checkheads-superceed-A3.t test-push-checkheads-superceed-A4.t test-push-checkheads-superceed-A5.t test-push-checkheads-superceed-A6.t test-push-checkheads-superceed-A7.t test-push-checkheads-superceed-A8.t test-push-checkheads-unpushed-D1.t test-push-checkheads-unpushed-D2.t test-push-checkheads-unpushed-D3.t test-push-checkheads-unpushed-D4.t test-push-checkheads-unpushed-D5.t test-push-checkheads-unpushed-D6.t test-push-checkheads-unpushed-D7.t test-push-http.t test-push-race.t test-push-warn.t test-push.t test-pushvars.t test-qrecord.t test-rebase-abort.t test-rebase-backup.t test-rebase-base-flag.t test-rebase-bookmarks.t test-rebase-brute-force.t test-rebase-cache.t test-rebase-check-restore.t test-rebase-collapse.t test-rebase-conflicts.t test-rebase-dest.t test-rebase-detach.t test-rebase-emptycommit.t test-rebase-inmemory.t test-rebase-interruptions.t test-rebase-issue-noparam-single-rev.t test-rebase-legacy.t test-rebase-mq-skip.t test-rebase-mq.t test-rebase-named-branches.t test-rebase-newancestor.t test-rebase-obsolete.t test-rebase-parameters.t test-rebase-partial.t test-rebase-pull.t test-rebase-rename.t test-rebase-scenario-global.t test-rebase-templates.t test-rebase-transaction.t test-rebuildstate.t test-record.t test-releasenotes-formatting.t test-releasenotes-merging.t test-releasenotes-parsing.t test-relink.t test-remote-hidden.t test-remotefilelog-bad-configs.t test-remotefilelog-bgprefetch.t test-remotefilelog-blame.t test-remotefilelog-bundle2.t test-remotefilelog-bundles.t test-remotefilelog-cacheprocess.t test-remotefilelog-clone-tree.t test-remotefilelog-clone.t test-remotefilelog-corrupt-cache.t test-remotefilelog-datapack.py test-remotefilelog-gc.t test-remotefilelog-gcrepack.t test-remotefilelog-histpack.py test-remotefilelog-http.t test-remotefilelog-keepset.t test-remotefilelog-linknodes.t test-remotefilelog-local.t test-remotefilelog-log.t test-remotefilelog-partial-shallow.t test-remotefilelog-permissions.t test-remotefilelog-prefetch.t test-remotefilelog-pull-noshallow.t test-remotefilelog-push-pull.t test-remotefilelog-repack-fast.t test-remotefilelog-repack.t test-remotefilelog-share.t test-remotefilelog-sparse.t test-remotefilelog-tags.t test-remotefilelog-wireproto.t test-remove.t test-removeemptydirs.t test-rename-after-merge.t test-rename-dir-merge.t test-rename-merge1.t test-rename-merge2.t test-rename.t test-repair-strip.t test-repo-compengines.t test-requires.t test-resolve.t test-revert-flags.t test-revert-interactive.t test-revert-unknown.t test-revert.t test-revisions.t test-revlog-ancestry.py test-revlog-group-emptyiter.t test-revlog-mmapindex.t test-revlog-packentry.t test-revlog-raw.py test-revlog-v2.t test-revlog.t test-revset-dirstate-parents.t test-revset-legacy-lookup.t test-revset-outgoing.t test-revset.t test-revset2.t test-rollback.t test-run-tests.py test-run-tests.t test-rust-ancestor.py test-rust-discovery.py test-schemes.t test-serve.t test-server-view.t test-setdiscovery.t test-share-bookmarks.t test-share.t test-shelve.t test-shelve2.t test-show-stack.t test-show-work.t test-show.t test-simple-update.t test-simplekeyvaluefile.py test-simplemerge.py test-single-head.t test-sparse-clear.t test-sparse-clone.t test-sparse-import.t test-sparse-merges.t test-sparse-profiles.t test-sparse-requirement.t test-sparse-verbose-json.t test-sparse.t test-split.t test-ssh-bundle1.t test-ssh-clone-r.t test-ssh-proto-unbundle.t test-ssh-proto.t test-ssh-repoerror.t test-ssh.t test-sshserver.py test-stack.t test-static-http.t test-status-color.t test-status-inprocess.py test-status-rev.t test-status-terse.t test-status.t test-storage.py test-stream-bundle-v2.t test-strict.t test-strip-cross.t test-strip.t test-subrepo-deep-nested-change.t test-subrepo-git.t test-subrepo-missing.t test-subrepo-paths.t test-subrepo-recursion.t test-subrepo-relative-path.t test-subrepo-svn.t test-subrepo.t test-symlink-os-yes-fs-no.py test-symlink-placeholder.t test-symlinks.t test-tag.t test-tags.t test-template-basic.t test-template-functions.t test-template-keywords.t test-template-map.t test-tools.t test-transplant.t test-treediscovery-legacy.t test-treediscovery.t test-treemanifest.t test-trusted.py test-ui-color.py test-ui-config.py test-ui-verbosity.py test-unamend.t test-unbundlehash.t test-uncommit.t test-unified-test.t test-unionrepo.t test-unrelated-pull.t test-up-local-change.t test-update-atomic.t test-update-branches.t test-update-dest.t test-update-issue1456.t test-update-names.t test-update-reverse.t test-upgrade-repo.t test-url-download.t test-url-rev.t test-url.py test-username-newline.t test-util.py test-verify.t test-walk.t test-walkrepo.py test-websub.t test-win32text.t test-wireproto-caching.t test-wireproto-clientreactor.py test-wireproto-command-branchmap.t test-wireproto-command-capabilities.t test-wireproto-command-changesetdata.t test-wireproto-command-filedata.t test-wireproto-command-filesdata.t test-wireproto-command-heads.t test-wireproto-command-known.t test-wireproto-command-listkeys.t test-wireproto-command-lookup.t test-wireproto-command-manifestdata.t test-wireproto-command-pushkey.t test-wireproto-command-rawstorefiledata.t test-wireproto-content-redirects.t test-wireproto-exchangev2.t test-wireproto-framing.py test-wireproto-serverreactor.py test-wireproto.py test-wireproto.t test-worker.t test-wsgirequest.py test-xdg.t