narrow: keep narrowspec backup in store
As suggested by Yuya in review of D4099.
Differential Revision: https://phab.mercurial-scm.org/D5470
tests: update narrowspec when narrowspec, not dirstate, is accessed
test-narrow-expanddirstate.t mimics a Google-internal extension that
updates the narrowspec whenever the dirstate is accessed. Since
1d09ba0d2ed3 (narrow: move remaining narrow-limited dirstate walks to
core, 2018-10-01) and a few commits before it, we no longer restrict
repo.dirstate.walk() to the narrowspec. It is instead done at a higher
level (e.g. context.status()). We were running into problems with the
Google-internal extension when importing those commits. The issue was
that the narrowspec was read before the first dirstate access. I
believe the right fix is to instead update the narrowspec when trying
to read it (not when reading the dirstate), so that's what this patch
does.
Differential Revision: https://phab.mercurial-scm.org/D5275
merge: extract helper for creating empty "actions" dict
Replicating the set of actions in multiple places is bad.
Differential Revision: https://phab.mercurial-scm.org/D5472
manifest: accept narrowmatch into constructor instead of getting from repo
The manifest should ideally not know at all about the repo, so this is
just a little step towards cleaning that up.
Differential Revision: https://phab.mercurial-scm.org/D5469
test: introduce a new flag to display env variable line per line
It's easier to conditionalize some of the environment variables per Mercurial
version once there is only one value per line.
Differential Revision: https://phab.mercurial-scm.org/D5453
revlog: add an explicit test for `issnapshot`
We test the method on a real revlog containing "real" data.