Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 21:09:47 -0700] rev 37437
commands: document the layering violation in `manifest --all`
This commit fixes the last test failures when using the simple
store extension!
It turns out that `hg manifest --all` locks the repo and scans for
revlogs. This feature was added by 71938479eff9 in 2011. I am
debating changing the behavior. But that can occur in another
commit.
As part of debugging this, I realized that test-manifest.t is the
only meaningful tester of `hg manifest --all` and that test was
improperly disabled when bundlerepos aren't supported. The test is
testing manifest behavior, not whether you can `hg pull` from a
bundle. So I changed the test to `hg unbundle` instead.
FWIW, I wasted a non-trivial amount of time tracking down this
failure. I thought the issue involved Git, which is why I refactored
the test to be more deterministic. Never in my mind would I have
guessed that code in `hg manifest` would scan revlogs. I should have
looked there to begin with. Doh.
Differential Revision: https://phab.mercurial-scm.org/D3118
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 19:17:22 -0700] rev 37436
simplestore: correctly implement flag processors
There were a couple of bugs around the implementation of
flags processing with the simple store. After these changes,
test-flagprocessor.t now passes!
test-flagprocessor.t was also updated to include explicit test
coverage that pushed data is as expected on the server.
The test extension used by test-flagprocessor.t has been updated
so it monkeypatches the object returned from repo.file() instead
of monkeypatching filelog.filelog. This allows it to work with
extensions that return custom types from repo.file().
The monkeypatching is rather hacky and probably is performance
prohibitive for real repos. We should probably come up with a
better mechanism for registering flag processors so monkeypatching
isn't needed.
Differential Revision: https://phab.mercurial-scm.org/D3116
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 17:40:09 -0700] rev 37435
tests: `hg init` after resetting HGRCPATH
Otherwise extensions loaded via --extra-config-opt could prevent
access to the repo by introducing requirements file. This does mean
that custom extensions loaded in this way won't impact this test.
I'm fine with that.
Differential Revision: https://phab.mercurial-scm.org/D3115
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 17:33:59 -0700] rev 37434
tests: work around potential repo incompatibility
test-run-tests.t invokes run-tests.py. But custom extensions providing
new repo requirements may be in play and may not get inherited by the
new run-tests.py. We ensure our repo is created with a vanilla config
to mitigate extension-caused badness.
Differential Revision: https://phab.mercurial-scm.org/D3114
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 17:29:02 -0700] rev 37433
tests: disable test-keyword.t with simple store
The keyword extension is hooking into repo.file() and defining its
own filelog class. It will likely require a more formal storage
interface before keywords are usable with alternate storage backends.
Differential Revision: https://phab.mercurial-scm.org/D3113
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 17:12:00 -0700] rev 37432
tests: conditionalize test-treemanifest.t
Parts of the test were assuming the use of revlogs with fnstore
path encoding.
Other parts of the test assumed we could create repos with different
store encodings and that stream clone bundles worked.
Make all of this conditional on running a revlog repo.
Differential Revision: https://phab.mercurial-scm.org/D3112
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 17:02:54 -0700] rev 37431
tests: use unbundle in test-symlink-os-yes-fs-no.py
The test (which should probably be rewritten as a .t test - the
test was initially authored in 2009 and this may have predated
some test harness features allowing us to implement it as a .t
test) is verifying symlink behavior with regards to working
directory operations. How it pulls bundle data into a repo is
not relevant. So we can switch from pull to unbundle so we can
support environments where bundlerepos don't work.
Differential Revision: https://phab.mercurial-scm.org/D3111
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 16:49:22 -0700] rev 37430
tests: disable `hg clone --stream` test with simple store
We mass disabled stream clone tests in a previous commit. Looks like
one was missed.
Differential Revision: https://phab.mercurial-scm.org/D3110
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 16:47:06 -0700] rev 37429
tests: use `hg unbundle` in test-setdiscovery.t
This is testing how discovery between 2 well-defined repos works,
not that `hg pull` works with bundles. Switch to `hg unbundle` so it
works in environments where bundlerepos aren't supported.
Differential Revision: https://phab.mercurial-scm.org/D3109
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 16:41:43 -0700] rev 37428
tests: require revlog store for test-verify.t
This tests is doing tons of revlog-y things. It should be
possible to make verification work across multiple stores. But it
will likely have to wait until we have better abstractions
in place.
Differential Revision: https://phab.mercurial-scm.org/D3108
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 16:32:51 -0700] rev 37427
tests: conditionalize test-commandserver.t based on extra extensions
If running with extra extensions we get an output difference.
Differential Revision: https://phab.mercurial-scm.org/D3107
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 16:29:19 -0700] rev 37426
tests: conditionalize test-bundle.t
This test is massive and could probably be split up.
This change essentially requires the revlog store for stream clone
tests and support for bundlerepos for various tests operating
on bundle files.
Differential Revision: https://phab.mercurial-scm.org/D3106
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 16:16:42 -0700] rev 37425
tests: require revlog store with test-repair-strip.t
This test is doing a number of low-level things with revlogs.
Mark it as requiring the revlog store.
Differential Revision: https://phab.mercurial-scm.org/D3105
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 17:53:45 -0700] rev 37424
simplestore: back up index when adding a revision
This ensures that transaction rollback reverts the index to its
previous state. This fixed a few test failures due to `hg verify`
complaining about a reference to an undefined changeset revision.
Differential Revision: https://phab.mercurial-scm.org/D3104
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 16:00:50 -0700] rev 37423
tests: disable shallow narrow tests with simple store
I think these are failing because of issues with flags processing
in the simple store. Let's revisit this later.
Differential Revision: https://phab.mercurial-scm.org/D3103