Mercurial > hg
annotate tests/test-status-rev.t @ 51681:522b4d729e89
mmap: populate the mapping by default
Without pre-population, accessing all data through a mmap can result in many
pagefault, reducing performance significantly. If the mmap is prepopulated, the
performance can no longer get slower than a full read.
(See benchmark number below)
In some cases were very few data is read, prepopulating can be overkill and
slower than populating on access (through page fault). So that behavior can be
controlled when the caller can pre-determine the best behavior.
(See benchmark number below)
In addition, testing with populating in a secondary thread yield great result
combining the best of each approach. This might be implemented in later
changesets.
In all cases, using mmap has a great effect on memory usage when many processes
run in parallel on the same machine.
### Benchmarks
# What did I run
A couple of month back I ran a large benchmark campaign to assess the impact of
various approach for using mmap with the revlog (and other files), it
highlighted a few benchmarks that capture the impact of the changes well. So to
validate this change I checked the following:
- log command displaying various revisions
(read the changelog index)
- log command displaying the patch of listed revisions
(read the changelog index, the manifest index and a few files indexes)
- unbundling a few revisions
(read and write changelog, manifest and few files indexes, and walk the graph
to update some cache)
- pushing a few revisions
(read and write changelog, manifest and few files indexes, walk the graph to
update some cache, performs various accesses locally and remotely during
discovery)
Benchmarks were run using the default module policy (c+py) and the rust one. No
significant difference were found between the two implementation, so we will
present result using the default policy (unless otherwise specified).
I ran them on a few repositories :
- mercurial: a "public changeset only" copy of mercurial from 2018-08-01 using
zstd compression and sparse-revlog
- pypy: a copy of pypy from 2018-08-01 using zstd compression and sparse-revlog
- netbeans: a copy of netbeans from 2018-08-01 using zstd compression and
sparse-revlog
- mozilla-try: a copy of mozilla-try from 2019-02-18 using zstd compression and
sparse-revlog
- mozilla-try persistent-nodemap: Same as the above but with a persistent
nodemap. Used for the log --patch benchmark only
# Results
For the smaller repositories (mercurial, pypy), the impact of mmap is almost
imperceptible, other cost dominating the operation. The impact of prepopulating
is undiscernible in the benchmark we ran.
For larger repositories the benchmark support explanation given above:
On netbeans, the log can be about 1% faster without repopulation (for a
difference < 100ms) but unbundle becomes a bit slower, even when small.
### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.unbundle
# benchmark.variants.issue6528 = disabled
# benchmark.variants.reuse-external-delta-parent = yes
# benchmark.variants.revs = any-1-extra-rev
# benchmark.variants.source = unbundle
# benchmark.variants.verbosity = quiet
with-populate: 0.240157
no-populate: 0.265087 (+10.38%, +0.02)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 1.459518
no-populate: 1.481290 (+1.49%, +0.02)
## benchmark.name = hg.command.push
# benchmark.variants.explicit-rev = none
# benchmark.variants.issue6528 = disabled
# benchmark.variants.protocol = ssh
# benchmark.variants.reuse-external-delta-parent = yes
# benchmark.variants.revs = any-1-extra-rev
with-populate: 0.771919
no-populate: 0.792025 (+2.60%, +0.02)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 1.459518
no-populate: 1.481290 (+1.49%, +0.02)
For mozilla-try, the "slow down" from pre-populate for small `hg log` is more
visible, but still small in absolute time. (using rust value for the persistent
nodemap value to be relevant).
### data-env-vars.name = mozilla-try-2019-02-18-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# benchmark.variants.patch = yes
# benchmark.variants.limit-rev = 1
with-populate: 0.237813
no-populate: 0.229452 (-3.52%, -0.01)
# benchmark.variants.limit-rev = 10
# benchmark.variants.patch = yes
with-populate: 1.213578
no-populate: 1.205189
### data-env-vars.name = mozilla-try-2019-02-18-zstd-sparse-revlog
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = tip
with-populate: 0.198607
no-populate: 0.195038 (-1.80%, -0.00)
However pre-populating provide a significant boost on more complex operations
like unbundle or push:
### data-env-vars.name = mozilla-try-2019-02-18-zstd-sparse-revlog
# benchmark.name = hg.command.push
# benchmark.variants.explicit-rev = none
# benchmark.variants.issue6528 = disabled
# benchmark.variants.protocol = ssh
# benchmark.variants.reuse-external-delta-parent = yes
# benchmark.variants.revs = any-1-extra-rev
with-populate: 4.798632
no-populate: 4.953295 (+3.22%, +0.15)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 4.903618
no-populate: 5.014963 (+2.27%, +0.11)
## benchmark.name = hg.command.unbundle
# benchmark.variants.revs = any-1-extra-rev
with-populate: 1.423411
no-populate: 1.585365 (+11.38%, +0.16)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 1.537909
no-populate: 1.688489 (+9.79%, +0.15)
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 11 Apr 2024 00:02:07 +0200 |
parents | ac3859a8b796 |
children |
rev | line source |
---|---|
23037
eeaed3d2b004
status: add more complete tests for --rev
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
diff
changeset
|
1 Tests of 'hg status --rev <rev>' to make sure status between <rev> and '.' get |
eeaed3d2b004
status: add more complete tests for --rev
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
diff
changeset
|
2 combined correctly with the dirstate status. |
eeaed3d2b004
status: add more complete tests for --rev
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
diff
changeset
|
3 |
49621
55c6ebd11cb9
tests: run many tests in $TESTTMP/repo instead of $TESTTMP
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
39707
diff
changeset
|
4 $ hg init repo |
55c6ebd11cb9
tests: run many tests in $TESTTMP/repo instead of $TESTTMP
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
39707
diff
changeset
|
5 $ cd repo |
23037
eeaed3d2b004
status: add more complete tests for --rev
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
diff
changeset
|
6 |
23196
daa73289dd2a
test-status-rev: use same names as from generate-working-copy-states
Martin von Zweigbergk <martinvonz@google.com>
parents:
23037
diff
changeset
|
7 First commit |
23037
eeaed3d2b004
status: add more complete tests for --rev
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
diff
changeset
|
8 |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
35230
diff
changeset
|
9 $ "$PYTHON" $TESTDIR/generate-working-copy-states.py state 2 1 |
23197
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
10 $ hg addremove --similarity 0 |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
11 adding content1_content1_content1-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
12 adding content1_content1_content1-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
13 adding content1_content1_content3-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
14 adding content1_content1_content3-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
15 adding content1_content1_missing-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
16 adding content1_content1_missing-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
17 adding content1_content2_content1-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
18 adding content1_content2_content1-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
19 adding content1_content2_content2-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
20 adding content1_content2_content2-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
21 adding content1_content2_content3-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
22 adding content1_content2_content3-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
23 adding content1_content2_missing-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
24 adding content1_content2_missing-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
25 adding content1_missing_content1-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
26 adding content1_missing_content1-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
27 adding content1_missing_content3-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
28 adding content1_missing_content3-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
29 adding content1_missing_missing-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
30 adding content1_missing_missing-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
31 $ hg commit -m first |
23037
eeaed3d2b004
status: add more complete tests for --rev
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
diff
changeset
|
32 |
23196
daa73289dd2a
test-status-rev: use same names as from generate-working-copy-states
Martin von Zweigbergk <martinvonz@google.com>
parents:
23037
diff
changeset
|
33 Second commit |
23037
eeaed3d2b004
status: add more complete tests for --rev
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
diff
changeset
|
34 |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
35230
diff
changeset
|
35 $ "$PYTHON" $TESTDIR/generate-working-copy-states.py state 2 2 |
23197
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
36 $ hg addremove --similarity 0 |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
37 removing content1_missing_content1-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
38 removing content1_missing_content1-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
39 removing content1_missing_content3-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
40 removing content1_missing_content3-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
41 removing content1_missing_missing-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
42 removing content1_missing_missing-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
43 adding missing_content2_content2-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
44 adding missing_content2_content2-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
45 adding missing_content2_content3-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
46 adding missing_content2_content3-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
47 adding missing_content2_missing-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
48 adding missing_content2_missing-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
49 $ hg commit -m second |
23037
eeaed3d2b004
status: add more complete tests for --rev
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
diff
changeset
|
50 |
23196
daa73289dd2a
test-status-rev: use same names as from generate-working-copy-states
Martin von Zweigbergk <martinvonz@google.com>
parents:
23037
diff
changeset
|
51 Working copy |
23037
eeaed3d2b004
status: add more complete tests for --rev
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
diff
changeset
|
52 |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
35230
diff
changeset
|
53 $ "$PYTHON" $TESTDIR/generate-working-copy-states.py state 2 wc |
23197
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
54 $ hg addremove --similarity 0 |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
55 adding content1_missing_content1-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
56 adding content1_missing_content1-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
57 adding content1_missing_content3-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
58 adding content1_missing_content3-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
59 adding content1_missing_missing-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
60 adding content1_missing_missing-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
61 adding missing_missing_content3-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
62 adding missing_missing_content3-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
63 adding missing_missing_missing-tracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
64 adding missing_missing_missing-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
65 $ hg forget *_*_*-untracked |
636158ff7329
test-status-rev: use common script for generating file history
Martin von Zweigbergk <martinvonz@google.com>
parents:
23196
diff
changeset
|
66 $ rm *_*_missing-* |
23037
eeaed3d2b004
status: add more complete tests for --rev
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
diff
changeset
|
67 |
23230
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
68 Status compared to parent of the working copy, i.e. the dirstate status |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
69 |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
70 $ hg status -A --rev 1 'glob:missing_content2_content3-tracked' |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
71 M missing_content2_content3-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
72 $ hg status -A --rev 1 'glob:missing_content2_content2-tracked' |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
73 C missing_content2_content2-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
74 $ hg status -A --rev 1 'glob:missing_missing_content3-tracked' |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
75 A missing_missing_content3-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
76 $ hg status -A --rev 1 'glob:missing_missing_content3-untracked' |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
77 ? missing_missing_content3-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
78 $ hg status -A --rev 1 'glob:missing_content2_*-untracked' |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
79 R missing_content2_content2-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
80 R missing_content2_content3-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
81 R missing_content2_missing-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
82 $ hg status -A --rev 1 'glob:missing_*_missing-tracked' |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
83 ! missing_content2_missing-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
84 ! missing_missing_missing-tracked |
33343
305935be8d5c
test-status-rev: conditionalize output instead of tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
32940
diff
changeset
|
85 |
23353
c2907334276b
tests: handle differences between missing file error strings on Windows and Unix
Matt Harbison <matt_harbison@yahoo.com>
parents:
23230
diff
changeset
|
86 $ hg status -A --rev 1 'glob:missing_missing_missing-untracked' |
35230
feecfefeba25
tests: add a substitution for ENOENT/ERROR_FILE_NOT_FOUND messages
Matt Harbison <matt_harbison@yahoo.com>
parents:
33343
diff
changeset
|
87 missing_missing_missing-untracked: $ENOENT$ |
23230
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
88 |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
89 Status between first and second commit. Should ignore dirstate status. |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
90 |
51155
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
91 $ hg status -marc --rev 0 --rev 1 --config rhg.on-unsupported=abort |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
92 M content1_content2_content1-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
93 M content1_content2_content1-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
94 M content1_content2_content2-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
95 M content1_content2_content2-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
96 M content1_content2_content3-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
97 M content1_content2_content3-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
98 M content1_content2_missing-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
99 M content1_content2_missing-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
100 A missing_content2_content2-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
101 A missing_content2_content2-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
102 A missing_content2_content3-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
103 A missing_content2_content3-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
104 A missing_content2_missing-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
105 A missing_content2_missing-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
106 R content1_missing_content1-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
107 R content1_missing_content1-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
108 R content1_missing_content3-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
109 R content1_missing_content3-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
110 R content1_missing_missing-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
111 R content1_missing_missing-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
112 C content1_content1_content1-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
113 C content1_content1_content1-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
114 C content1_content1_content3-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
115 C content1_content1_content3-untracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
116 C content1_content1_missing-tracked |
ac3859a8b796
rhg: support rhg status --rev --rev
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
49621
diff
changeset
|
117 C content1_content1_missing-untracked |
23230
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
118 $ hg status -A --rev 0:1 'glob:content1_content2_*' |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
119 M content1_content2_content1-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
120 M content1_content2_content1-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
121 M content1_content2_content2-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
122 M content1_content2_content2-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
123 M content1_content2_content3-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
124 M content1_content2_content3-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
125 M content1_content2_missing-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
126 M content1_content2_missing-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
127 $ hg status -A --rev 0:1 'glob:content1_content1_*' |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
128 C content1_content1_content1-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
129 C content1_content1_content1-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
130 C content1_content1_content3-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
131 C content1_content1_content3-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
132 C content1_content1_missing-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
133 C content1_content1_missing-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
134 $ hg status -A --rev 0:1 'glob:missing_content2_*' |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
135 A missing_content2_content2-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
136 A missing_content2_content2-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
137 A missing_content2_content3-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
138 A missing_content2_content3-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
139 A missing_content2_missing-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
140 A missing_content2_missing-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
141 $ hg status -A --rev 0:1 'glob:content1_missing_*' |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
142 R content1_missing_content1-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
143 R content1_missing_content1-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
144 R content1_missing_content3-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
145 R content1_missing_content3-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
146 R content1_missing_missing-tracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
147 R content1_missing_missing-untracked |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
148 $ hg status -A --rev 0:1 'glob:missing_missing_*' |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
149 |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
150 Status compared to one revision back, checking that the dirstate status |
7f4f4217c924
test-status-rev: add tests for plain dirstate and inter-revision status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23229
diff
changeset
|
151 is correctly combined with the inter-revision status |
23037
eeaed3d2b004
status: add more complete tests for --rev
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
diff
changeset
|
152 |
23229
2a462c0792fe
test-status-rev: remove unnecessary initial commit
Martin von Zweigbergk <martinvonz@google.com>
parents:
23228
diff
changeset
|
153 $ hg status -A --rev 0 'glob:content1_*_content[23]-tracked' |
23196
daa73289dd2a
test-status-rev: use same names as from generate-working-copy-states
Martin von Zweigbergk <martinvonz@google.com>
parents:
23037
diff
changeset
|
154 M content1_content1_content3-tracked |
23228
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
155 M content1_content2_content2-tracked |
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
156 M content1_content2_content3-tracked |
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
157 M content1_missing_content3-tracked |
23229
2a462c0792fe
test-status-rev: remove unnecessary initial commit
Martin von Zweigbergk <martinvonz@google.com>
parents:
23228
diff
changeset
|
158 $ hg status -A --rev 0 'glob:content1_*_content1-tracked' |
23228
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
159 C content1_content1_content1-tracked |
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
160 C content1_content2_content1-tracked |
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
161 C content1_missing_content1-tracked |
23229
2a462c0792fe
test-status-rev: remove unnecessary initial commit
Martin von Zweigbergk <martinvonz@google.com>
parents:
23228
diff
changeset
|
162 $ hg status -A --rev 0 'glob:missing_*_content?-tracked' |
23228
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
163 A missing_content2_content2-tracked |
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
164 A missing_content2_content3-tracked |
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
165 A missing_missing_content3-tracked |
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
166 BROKEN: missing_content2_content[23]-untracked exist, so should be listed |
23229
2a462c0792fe
test-status-rev: remove unnecessary initial commit
Martin von Zweigbergk <martinvonz@google.com>
parents:
23228
diff
changeset
|
167 $ hg status -A --rev 0 'glob:missing_*_content?-untracked' |
23228
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
168 ? missing_missing_content3-untracked |
23229
2a462c0792fe
test-status-rev: remove unnecessary initial commit
Martin von Zweigbergk <martinvonz@google.com>
parents:
23228
diff
changeset
|
169 $ hg status -A --rev 0 'glob:content1_*_*-untracked' |
23228
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
170 R content1_content1_content1-untracked |
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
171 R content1_content1_content3-untracked |
23196
daa73289dd2a
test-status-rev: use same names as from generate-working-copy-states
Martin von Zweigbergk <martinvonz@google.com>
parents:
23037
diff
changeset
|
172 R content1_content1_missing-untracked |
23228
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
173 R content1_content2_content1-untracked |
23196
daa73289dd2a
test-status-rev: use same names as from generate-working-copy-states
Martin von Zweigbergk <martinvonz@google.com>
parents:
23037
diff
changeset
|
174 R content1_content2_content2-untracked |
23228
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
175 R content1_content2_content3-untracked |
23196
daa73289dd2a
test-status-rev: use same names as from generate-working-copy-states
Martin von Zweigbergk <martinvonz@google.com>
parents:
23037
diff
changeset
|
176 R content1_content2_missing-untracked |
23228
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
177 R content1_missing_content1-untracked |
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
178 R content1_missing_content3-untracked |
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
179 R content1_missing_missing-untracked |
23229
2a462c0792fe
test-status-rev: remove unnecessary initial commit
Martin von Zweigbergk <martinvonz@google.com>
parents:
23228
diff
changeset
|
180 $ hg status -A --rev 0 'glob:*_*_missing-tracked' |
23228
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
181 ! content1_content1_missing-tracked |
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
182 ! content1_content2_missing-tracked |
23196
daa73289dd2a
test-status-rev: use same names as from generate-working-copy-states
Martin von Zweigbergk <martinvonz@google.com>
parents:
23037
diff
changeset
|
183 ! content1_missing_missing-tracked |
daa73289dd2a
test-status-rev: use same names as from generate-working-copy-states
Martin von Zweigbergk <martinvonz@google.com>
parents:
23037
diff
changeset
|
184 ! missing_content2_missing-tracked |
23228
5f5876a2d2b2
test-status-rev: use one glob for each expected status
Martin von Zweigbergk <martinvonz@google.com>
parents:
23227
diff
changeset
|
185 ! missing_missing_missing-tracked |
23229
2a462c0792fe
test-status-rev: remove unnecessary initial commit
Martin von Zweigbergk <martinvonz@google.com>
parents:
23228
diff
changeset
|
186 $ hg status -A --rev 0 'glob:missing_*_missing-untracked' |