annotate tests/test-ancestor.py.out @ 39700:b10d145837bc

localrepo: extract resolving of opener options to standalone functions Requirements and config options are converted into a dict which is available to the store vfs to consult. This is how storage options are communicated from the repo layer to the storage layer. Currently, we do that option resolution in a private method on the repo instance. And there is a single method doing that resolution. Opener options are logically specific to the storage backend they apply to. And, opener options may wish to influence how the repo object/type is constructed. So it makes sense to have more granular storage option resolution that occurs before the repo object is instantiated. This commit extracts the code for resolving opener options into new module-level functions. These functions are run before the repo instance is constructed. As part of the code move, we split the option resolution into generic and revlog-specific options. After this commit, we no longer add revlog-specific options to repos that don't have a revlog requirement. Some of these opener options and associated config options might make sense on alternate storage backends. We can always reuse config options and opener option names for other backends. But we shouldn't be passing opener options to storage backends that won't recognize them. I haven't done it here, but after this commit it should be possible for store backends to validate the set of opener options it receives. Because localrepository.openerreqs is no longer used after this commit, it has been removed. I'm not super thrilled about the code outside of localrepo that is adding requirements and updating opener options. We'll probably want to create a more formal API for that use case that constructs a new repo instance and poisons the old repo object. But this was a pre-existing issue and can be dealt with later. I have little doubt it will cause me troubles as I continue to refactor how repository objects are instantiated. .. api:: ``localrepository.openerreqs`` has been removed. Override ``localrepo.resolvestorevfsoptions()`` to add custom opener options. .. api:: ``localrepository._applyopenerreqs()`` has been removed. Use ``localrepo.resolvestorevfsoptions()`` to add custom opener options. Differential Revision: https://phab.mercurial-scm.org/D4576
author Gregory Szorc <gregory.szorc@gmail.com>
date Wed, 12 Sep 2018 15:59:26 -0700
parents bdb177923291
children d097dd0afc19
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18091
f7f8159caad3 ancestor: add lazy membership testing to lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 18079
diff changeset
1 % lazy ancestor set for [], stoprev = 0, inclusive = False
23329
c6cd4b8b76f8 test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 22355
diff changeset
2 membership: []
c6cd4b8b76f8 test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 22355
diff changeset
3 iteration: []
18091
f7f8159caad3 ancestor: add lazy membership testing to lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 18079
diff changeset
4 % lazy ancestor set for [11, 13], stoprev = 0, inclusive = False
23329
c6cd4b8b76f8 test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 22355
diff changeset
5 membership: [7, 8, 3, 4, 1, 0]
39473
b6db2e80a9ce ancestors: actually iterate over ancestors in topological order (issue5979)
Boris Feld <boris.feld@octobus.net>
parents: 23331
diff changeset
6 iteration: [8, 7, 4, 3, 2, 1, 0]
22355
731b2a90983b test-ancestor: add a test for `ancestor` with ancestry within the initset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18091
diff changeset
7 % lazy ancestor set for [1, 3], stoprev = 0, inclusive = False
23329
c6cd4b8b76f8 test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 22355
diff changeset
8 membership: [1, 0]
39473
b6db2e80a9ce ancestors: actually iterate over ancestors in topological order (issue5979)
Boris Feld <boris.feld@octobus.net>
parents: 23331
diff changeset
9 iteration: [1, 0]
18091
f7f8159caad3 ancestor: add lazy membership testing to lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 18079
diff changeset
10 % lazy ancestor set for [11, 13], stoprev = 0, inclusive = True
23329
c6cd4b8b76f8 test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 22355
diff changeset
11 membership: [11, 13, 7, 8, 3, 4, 1, 0]
39474
a60dae060bc8 ancestors: ensure a consistent order even in the "inclusive" case
Boris Feld <boris.feld@octobus.net>
parents: 39473
diff changeset
12 iteration: [13, 11, 8, 7, 4, 3, 2, 1, 0]
18091
f7f8159caad3 ancestor: add lazy membership testing to lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 18079
diff changeset
13 % lazy ancestor set for [11, 13], stoprev = 6, inclusive = False
23329
c6cd4b8b76f8 test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 22355
diff changeset
14 membership: [7, 8]
39473
b6db2e80a9ce ancestors: actually iterate over ancestors in topological order (issue5979)
Boris Feld <boris.feld@octobus.net>
parents: 23331
diff changeset
15 iteration: [8, 7]
18091
f7f8159caad3 ancestor: add lazy membership testing to lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 18079
diff changeset
16 % lazy ancestor set for [11, 13], stoprev = 6, inclusive = True
23329
c6cd4b8b76f8 test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents: 22355
diff changeset
17 membership: [11, 13, 7, 8]
39474
a60dae060bc8 ancestors: ensure a consistent order even in the "inclusive" case
Boris Feld <boris.feld@octobus.net>
parents: 39473
diff changeset
18 iteration: [13, 11, 8, 7]
39475
431068d7e9db ancestor: add test showing inconsistency between __iter__ and __contains__
Yuya Nishihara <yuya@tcha.org>
parents: 39474
diff changeset
19 % lazy ancestor set for [11, 13], stoprev = 11, inclusive = True
431068d7e9db ancestor: add test showing inconsistency between __iter__ and __contains__
Yuya Nishihara <yuya@tcha.org>
parents: 39474
diff changeset
20 membership: [11, 13]
431068d7e9db ancestor: add test showing inconsistency between __iter__ and __contains__
Yuya Nishihara <yuya@tcha.org>
parents: 39474
diff changeset
21 iteration: [13, 11]
431068d7e9db ancestor: add test showing inconsistency between __iter__ and __contains__
Yuya Nishihara <yuya@tcha.org>
parents: 39474
diff changeset
22 % lazy ancestor set for [11, 13], stoprev = 12, inclusive = True
39476
7eadc9407867 ancestor: filter out initial revisions lower than stoprev
Yuya Nishihara <yuya@tcha.org>
parents: 39475
diff changeset
23 membership: [13]
39475
431068d7e9db ancestor: add test showing inconsistency between __iter__ and __contains__
Yuya Nishihara <yuya@tcha.org>
parents: 39474
diff changeset
24 iteration: [13]
39536
bdb177923291 ancestor: optimize _lazyancestorsiter() for contiguous chains
Yuya Nishihara <yuya@tcha.org>
parents: 39476
diff changeset
25 % lazy ancestor set for [10, 1], stoprev = 0, inclusive = True
bdb177923291 ancestor: optimize _lazyancestorsiter() for contiguous chains
Yuya Nishihara <yuya@tcha.org>
parents: 39476
diff changeset
26 membership: [2, 10, 4, 5, 0, 1]
bdb177923291 ancestor: optimize _lazyancestorsiter() for contiguous chains
Yuya Nishihara <yuya@tcha.org>
parents: 39476
diff changeset
27 iteration: [10, 5, 4, 2, 1, 0]