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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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'