Mercurial > hg
annotate tests/test-manifestv2.t @ 28205:53f42c8d5f71
verify: show progress while verifying dirlogs
In repos with treemanifests, the non-root-directory dirlogs often have
many more total revisions than the root manifest log has. This change
adds progress out to that part of 'hg verify'. Since the verification
is recursive along the directory tree, we don't know how many total
revisions there are at the beginning of the command, so instead we
report progress in units of directories, much like we report progress
for verification of files today.
I'm not very happy with passing both 'storefiles' and 'progress' into
the recursive calls. I tried passing in just a 'visitdir(dir)'
callback, but the results did not seem better overall. I'm happy to
update if anyone has better ideas.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 11 Feb 2016 15:38:56 -0800 |
parents | 2329ca3ebc7a |
children | eb586ed5d8ce |
rev | line source |
---|---|
24935
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
1 Create repo with old manifest |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
2 |
26917
2329ca3ebc7a
test: use generaldelta in test-manifestv2.t
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24935
diff
changeset
|
3 $ cat << EOF >> $HGRCPATH |
2329ca3ebc7a
test: use generaldelta in test-manifestv2.t
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24935
diff
changeset
|
4 > [format] |
2329ca3ebc7a
test: use generaldelta in test-manifestv2.t
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24935
diff
changeset
|
5 > usegeneraldelta=yes |
2329ca3ebc7a
test: use generaldelta in test-manifestv2.t
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24935
diff
changeset
|
6 > EOF |
2329ca3ebc7a
test: use generaldelta in test-manifestv2.t
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24935
diff
changeset
|
7 |
24935
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
8 $ hg init existing |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
9 $ cd existing |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
10 $ echo footext > foo |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
11 $ hg add foo |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
12 $ hg commit -m initial |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
13 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
14 We're using v1, so no manifestv2 entry is in requires yet. |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
15 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
16 $ grep manifestv2 .hg/requires |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
17 [1] |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
18 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
19 Let's clone this with manifestv2 enabled to switch to the new format for |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
20 future commits. |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
21 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
22 $ cd .. |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
23 $ hg clone --pull existing new --config experimental.manifestv2=1 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
24 requesting all changes |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
25 adding changesets |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
26 adding manifests |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
27 adding file changes |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
28 added 1 changesets with 1 changes to 1 files |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
29 updating to branch default |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
30 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
31 $ cd new |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
32 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
33 Check that entry was added to .hg/requires. |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
34 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
35 $ grep manifestv2 .hg/requires |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
36 manifestv2 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
37 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
38 Make a new commit. |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
39 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
40 $ echo newfootext > foo |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
41 $ hg commit -m new |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
42 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
43 Check that the manifest actually switched to v2. |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
44 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
45 $ hg debugdata -m 0 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
46 foo\x0021e958b1dca695a60ee2e9cf151753204ee0f9e9 (esc) |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
47 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
48 $ hg debugdata -m 1 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
49 \x00 (esc) |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
50 \x00foo\x00 (esc) |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
51 I\xab\x7f\xb8(\x83\xcas\x15\x9d\xc2\xd3\xd3:5\x08\xbad5_ (esc) |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
52 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
53 Check that manifestv2 is used if the requirement is present, even if it's |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
54 disabled in the config. |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
55 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
56 $ echo newerfootext > foo |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
57 $ hg --config experimental.manifestv2=False commit -m newer |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
58 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
59 $ hg debugdata -m 2 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
60 \x00 (esc) |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
61 \x00foo\x00 (esc) |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
62 \xa6\xb1\xfb\xef]\x91\xa1\x19`\xf3.#\x90S\xf8\x06 \xe2\x19\x00 (esc) |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
63 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
64 Check that we can still read v1 manifests. |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
65 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
66 $ hg files -r 0 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
67 foo |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
68 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
69 $ cd .. |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
70 |
3035b75cd594
tests: test that we can convert to manifestv2 with clone
Drew Gottlieb <drgott@google.com>
parents:
24573
diff
changeset
|
71 Check that entry is added to .hg/requires on repo creation |
24571
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
72 |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
73 $ hg --config experimental.manifestv2=True init repo |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
74 $ cd repo |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
75 $ grep manifestv2 .hg/requires |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
76 manifestv2 |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
77 |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
78 Set up simple repo |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
79 |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
80 $ echo a > file1 |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
81 $ echo b > file2 |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
82 $ echo c > file3 |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
83 $ hg ci -Aqm 'initial' |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
84 $ echo d > file2 |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
85 $ hg ci -m 'modify file2' |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
86 |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
87 Check that 'hg verify', which uses manifest.readdelta(), works |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
88 |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
89 $ hg verify |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
90 checking changesets |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
91 checking manifests |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
92 crosschecking files in changesets and manifests |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
93 checking files |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
94 3 files, 2 changesets, 4 total revisions |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
95 |
24573
701d3554de0e
manifestv2: add support for writing new manifest format
Martin von Zweigbergk <martinvonz@google.com>
parents:
24571
diff
changeset
|
96 Check that manifest revlog is smaller than for v1 |
24571
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
97 |
919f8ce040be
manifestv2: set requires at repo creation time
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
98 $ hg debugindex -m |
26917
2329ca3ebc7a
test: use generaldelta in test-manifestv2.t
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24935
diff
changeset
|
99 rev offset length delta linkrev nodeid p1 p2 |
2329ca3ebc7a
test: use generaldelta in test-manifestv2.t
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24935
diff
changeset
|
100 0 0 81 -1 0 57361477c778 000000000000 000000000000 |
24573
701d3554de0e
manifestv2: add support for writing new manifest format
Martin von Zweigbergk <martinvonz@google.com>
parents:
24571
diff
changeset
|
101 1 81 33 0 1 aeaab5a2ef74 57361477c778 000000000000 |