##// END OF EJS Templates
tests: unquiet a test to show changes in next patch...
Pulkit Goyal -
r47198:bfaacfa8 default
parent child Browse files
Show More
@@ -1,744 +1,768 b''
1 ===================================
1 ===================================
2 Test the persistent on-disk nodemap
2 Test the persistent on-disk nodemap
3 ===================================
3 ===================================
4
4
5 $ cat << EOF >> $HGRCPATH
5 $ cat << EOF >> $HGRCPATH
6 > [format]
6 > [format]
7 > use-persistent-nodemap=yes
7 > use-persistent-nodemap=yes
8 > [devel]
8 > [devel]
9 > persistent-nodemap=yes
9 > persistent-nodemap=yes
10 > EOF
10 > EOF
11
11
12 $ hg init test-repo --config storage.revlog.persistent-nodemap.slow-path=allow
12 $ hg init test-repo --config storage.revlog.persistent-nodemap.slow-path=allow
13 $ cd test-repo
13 $ cd test-repo
14
14
15 Check handling of the default slow-path value
15 Check handling of the default slow-path value
16
16
17 #if no-pure no-rust
17 #if no-pure no-rust
18
18
19 $ hg id
19 $ hg id
20 abort: accessing `persistent-nodemap` repository without associated fast implementation.
20 abort: accessing `persistent-nodemap` repository without associated fast implementation.
21 (check `hg help config.format.use-persistent-nodemap` for details)
21 (check `hg help config.format.use-persistent-nodemap` for details)
22 [255]
22 [255]
23
23
24 Unlock further check (we are here to test the feature)
24 Unlock further check (we are here to test the feature)
25
25
26 $ cat << EOF >> $HGRCPATH
26 $ cat << EOF >> $HGRCPATH
27 > [storage]
27 > [storage]
28 > # to avoid spamming the test
28 > # to avoid spamming the test
29 > revlog.persistent-nodemap.slow-path=allow
29 > revlog.persistent-nodemap.slow-path=allow
30 > EOF
30 > EOF
31
31
32 #endif
32 #endif
33
33
34 #if rust
34 #if rust
35
35
36 Regression test for a previous bug in Rust/C FFI for the `Revlog_CAPI` capsule:
36 Regression test for a previous bug in Rust/C FFI for the `Revlog_CAPI` capsule:
37 in places where `mercurial/cext/revlog.c` function signatures use `Py_ssize_t`
37 in places where `mercurial/cext/revlog.c` function signatures use `Py_ssize_t`
38 (64 bits on Linux x86_64), corresponding declarations in `rust/hg-cpython/src/cindex.rs`
38 (64 bits on Linux x86_64), corresponding declarations in `rust/hg-cpython/src/cindex.rs`
39 incorrectly used `libc::c_int` (32 bits).
39 incorrectly used `libc::c_int` (32 bits).
40 As a result, -1 passed from Rust for the null revision became 4294967295 in C.
40 As a result, -1 passed from Rust for the null revision became 4294967295 in C.
41
41
42 $ hg log -r 00000000
42 $ hg log -r 00000000
43 changeset: -1:000000000000
43 changeset: -1:000000000000
44 tag: tip
44 tag: tip
45 user:
45 user:
46 date: Thu Jan 01 00:00:00 1970 +0000
46 date: Thu Jan 01 00:00:00 1970 +0000
47
47
48
48
49 #endif
49 #endif
50
50
51
51
52 $ hg debugformat
52 $ hg debugformat
53 format-variant repo
53 format-variant repo
54 fncache: yes
54 fncache: yes
55 dotencode: yes
55 dotencode: yes
56 generaldelta: yes
56 generaldelta: yes
57 share-safe: no
57 share-safe: no
58 sparserevlog: yes
58 sparserevlog: yes
59 sidedata: no
59 sidedata: no
60 persistent-nodemap: yes
60 persistent-nodemap: yes
61 copies-sdc: no
61 copies-sdc: no
62 plain-cl-delta: yes
62 plain-cl-delta: yes
63 compression: zlib
63 compression: zlib
64 compression-level: default
64 compression-level: default
65 $ hg debugbuilddag .+5000 --new-file
65 $ hg debugbuilddag .+5000 --new-file
66
66
67 $ hg debugnodemap --metadata
67 $ hg debugnodemap --metadata
68 uid: ???????????????? (glob)
68 uid: ???????????????? (glob)
69 tip-rev: 5000
69 tip-rev: 5000
70 tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c
70 tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c
71 data-length: 121088
71 data-length: 121088
72 data-unused: 0
72 data-unused: 0
73 data-unused: 0.000%
73 data-unused: 0.000%
74 $ f --size .hg/store/00changelog.n
74 $ f --size .hg/store/00changelog.n
75 .hg/store/00changelog.n: size=70
75 .hg/store/00changelog.n: size=70
76
76
77 Simple lookup works
77 Simple lookup works
78
78
79 $ ANYNODE=`hg log --template '{node|short}\n' --rev tip`
79 $ ANYNODE=`hg log --template '{node|short}\n' --rev tip`
80 $ hg log -r "$ANYNODE" --template '{rev}\n'
80 $ hg log -r "$ANYNODE" --template '{rev}\n'
81 5000
81 5000
82
82
83
83
84 #if rust
84 #if rust
85
85
86 $ f --sha256 .hg/store/00changelog-*.nd
86 $ f --sha256 .hg/store/00changelog-*.nd
87 .hg/store/00changelog-????????????????.nd: sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd (glob)
87 .hg/store/00changelog-????????????????.nd: sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd (glob)
88
88
89 $ f --sha256 .hg/store/00manifest-*.nd
89 $ f --sha256 .hg/store/00manifest-*.nd
90 .hg/store/00manifest-????????????????.nd: sha256=97117b1c064ea2f86664a124589e47db0e254e8d34739b5c5cc5bf31c9da2b51 (glob)
90 .hg/store/00manifest-????????????????.nd: sha256=97117b1c064ea2f86664a124589e47db0e254e8d34739b5c5cc5bf31c9da2b51 (glob)
91 $ hg debugnodemap --dump-new | f --sha256 --size
91 $ hg debugnodemap --dump-new | f --sha256 --size
92 size=121088, sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd
92 size=121088, sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd
93 $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
93 $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
94 size=121088, sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd
94 size=121088, sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd
95 0000: 00 00 00 91 00 00 00 20 00 00 00 bb 00 00 00 e7 |....... ........|
95 0000: 00 00 00 91 00 00 00 20 00 00 00 bb 00 00 00 e7 |....... ........|
96 0010: 00 00 00 66 00 00 00 a1 00 00 01 13 00 00 01 22 |...f..........."|
96 0010: 00 00 00 66 00 00 00 a1 00 00 01 13 00 00 01 22 |...f..........."|
97 0020: 00 00 00 23 00 00 00 fc 00 00 00 ba 00 00 00 5e |...#...........^|
97 0020: 00 00 00 23 00 00 00 fc 00 00 00 ba 00 00 00 5e |...#...........^|
98 0030: 00 00 00 df 00 00 01 4e 00 00 01 65 00 00 00 ab |.......N...e....|
98 0030: 00 00 00 df 00 00 01 4e 00 00 01 65 00 00 00 ab |.......N...e....|
99 0040: 00 00 00 a9 00 00 00 95 00 00 00 73 00 00 00 38 |...........s...8|
99 0040: 00 00 00 a9 00 00 00 95 00 00 00 73 00 00 00 38 |...........s...8|
100 0050: 00 00 00 cc 00 00 00 92 00 00 00 90 00 00 00 69 |...............i|
100 0050: 00 00 00 cc 00 00 00 92 00 00 00 90 00 00 00 69 |...............i|
101 0060: 00 00 00 ec 00 00 00 8d 00 00 01 4f 00 00 00 12 |...........O....|
101 0060: 00 00 00 ec 00 00 00 8d 00 00 01 4f 00 00 00 12 |...........O....|
102 0070: 00 00 02 0c 00 00 00 77 00 00 00 9c 00 00 00 8f |.......w........|
102 0070: 00 00 02 0c 00 00 00 77 00 00 00 9c 00 00 00 8f |.......w........|
103 0080: 00 00 00 d5 00 00 00 6b 00 00 00 48 00 00 00 b3 |.......k...H....|
103 0080: 00 00 00 d5 00 00 00 6b 00 00 00 48 00 00 00 b3 |.......k...H....|
104 0090: 00 00 00 e5 00 00 00 b5 00 00 00 8e 00 00 00 ad |................|
104 0090: 00 00 00 e5 00 00 00 b5 00 00 00 8e 00 00 00 ad |................|
105 00a0: 00 00 00 7b 00 00 00 7c 00 00 00 0b 00 00 00 2b |...{...|.......+|
105 00a0: 00 00 00 7b 00 00 00 7c 00 00 00 0b 00 00 00 2b |...{...|.......+|
106 00b0: 00 00 00 c6 00 00 00 1e 00 00 01 08 00 00 00 11 |................|
106 00b0: 00 00 00 c6 00 00 00 1e 00 00 01 08 00 00 00 11 |................|
107 00c0: 00 00 01 30 00 00 00 26 00 00 01 9c 00 00 00 35 |...0...&.......5|
107 00c0: 00 00 01 30 00 00 00 26 00 00 01 9c 00 00 00 35 |...0...&.......5|
108 00d0: 00 00 00 b8 00 00 01 31 00 00 00 2c 00 00 00 55 |.......1...,...U|
108 00d0: 00 00 00 b8 00 00 01 31 00 00 00 2c 00 00 00 55 |.......1...,...U|
109 00e0: 00 00 00 8a 00 00 00 9a 00 00 00 0c 00 00 01 1e |................|
109 00e0: 00 00 00 8a 00 00 00 9a 00 00 00 0c 00 00 01 1e |................|
110 00f0: 00 00 00 a4 00 00 00 83 00 00 00 c9 00 00 00 8c |................|
110 00f0: 00 00 00 a4 00 00 00 83 00 00 00 c9 00 00 00 8c |................|
111
111
112
112
113 #else
113 #else
114
114
115 $ f --sha256 .hg/store/00changelog-*.nd
115 $ f --sha256 .hg/store/00changelog-*.nd
116 .hg/store/00changelog-????????????????.nd: sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79 (glob)
116 .hg/store/00changelog-????????????????.nd: sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79 (glob)
117 $ hg debugnodemap --dump-new | f --sha256 --size
117 $ hg debugnodemap --dump-new | f --sha256 --size
118 size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79
118 size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79
119 $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
119 $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
120 size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79
120 size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79
121 0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
121 0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
122 0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
122 0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
123 0020: ff ff ff ff ff ff f5 06 ff ff ff ff ff ff f3 e7 |................|
123 0020: ff ff ff ff ff ff f5 06 ff ff ff ff ff ff f3 e7 |................|
124 0030: ff ff ef ca ff ff ff ff ff ff ff ff ff ff ff ff |................|
124 0030: ff ff ef ca ff ff ff ff ff ff ff ff ff ff ff ff |................|
125 0040: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
125 0040: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
126 0050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ed 08 |................|
126 0050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ed 08 |................|
127 0060: ff ff ed 66 ff ff ff ff ff ff ff ff ff ff ff ff |...f............|
127 0060: ff ff ed 66 ff ff ff ff ff ff ff ff ff ff ff ff |...f............|
128 0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
128 0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
129 0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
129 0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
130 0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f6 ed |................|
130 0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f6 ed |................|
131 00a0: ff ff ff ff ff ff fe 61 ff ff ff ff ff ff ff ff |.......a........|
131 00a0: ff ff ff ff ff ff fe 61 ff ff ff ff ff ff ff ff |.......a........|
132 00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
132 00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
133 00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
133 00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
134 00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
134 00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
135 00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f1 02 |................|
135 00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f1 02 |................|
136 00f0: ff ff ff ff ff ff ed 1b ff ff ff ff ff ff ff ff |................|
136 00f0: ff ff ff ff ff ff ed 1b ff ff ff ff ff ff ff ff |................|
137
137
138 #endif
138 #endif
139
139
140 $ hg debugnodemap --check
140 $ hg debugnodemap --check
141 revision in index: 5001
141 revision in index: 5001
142 revision in nodemap: 5001
142 revision in nodemap: 5001
143
143
144 add a new commit
144 add a new commit
145
145
146 $ hg up
146 $ hg up
147 5001 files updated, 0 files merged, 0 files removed, 0 files unresolved
147 5001 files updated, 0 files merged, 0 files removed, 0 files unresolved
148 $ echo foo > foo
148 $ echo foo > foo
149 $ hg add foo
149 $ hg add foo
150
150
151
151
152 Check slow-path config value handling
152 Check slow-path config value handling
153 -------------------------------------
153 -------------------------------------
154
154
155 #if no-pure no-rust
155 #if no-pure no-rust
156
156
157 $ hg id --config "storage.revlog.persistent-nodemap.slow-path=invalid-value"
157 $ hg id --config "storage.revlog.persistent-nodemap.slow-path=invalid-value"
158 unknown value for config "storage.revlog.persistent-nodemap.slow-path": "invalid-value"
158 unknown value for config "storage.revlog.persistent-nodemap.slow-path": "invalid-value"
159 falling back to default value: abort
159 falling back to default value: abort
160 abort: accessing `persistent-nodemap` repository without associated fast implementation.
160 abort: accessing `persistent-nodemap` repository without associated fast implementation.
161 (check `hg help config.format.use-persistent-nodemap` for details)
161 (check `hg help config.format.use-persistent-nodemap` for details)
162 [255]
162 [255]
163
163
164 $ hg log -r . --config "storage.revlog.persistent-nodemap.slow-path=warn"
164 $ hg log -r . --config "storage.revlog.persistent-nodemap.slow-path=warn"
165 warning: accessing `persistent-nodemap` repository without associated fast implementation.
165 warning: accessing `persistent-nodemap` repository without associated fast implementation.
166 (check `hg help config.format.use-persistent-nodemap` for details)
166 (check `hg help config.format.use-persistent-nodemap` for details)
167 changeset: 5000:6b02b8c7b966
167 changeset: 5000:6b02b8c7b966
168 tag: tip
168 tag: tip
169 user: debugbuilddag
169 user: debugbuilddag
170 date: Thu Jan 01 01:23:20 1970 +0000
170 date: Thu Jan 01 01:23:20 1970 +0000
171 summary: r5000
171 summary: r5000
172
172
173 $ hg ci -m 'foo' --config "storage.revlog.persistent-nodemap.slow-path=abort"
173 $ hg ci -m 'foo' --config "storage.revlog.persistent-nodemap.slow-path=abort"
174 abort: accessing `persistent-nodemap` repository without associated fast implementation.
174 abort: accessing `persistent-nodemap` repository without associated fast implementation.
175 (check `hg help config.format.use-persistent-nodemap` for details)
175 (check `hg help config.format.use-persistent-nodemap` for details)
176 [255]
176 [255]
177
177
178 #else
178 #else
179
179
180 $ hg id --config "storage.revlog.persistent-nodemap.slow-path=invalid-value"
180 $ hg id --config "storage.revlog.persistent-nodemap.slow-path=invalid-value"
181 unknown value for config "storage.revlog.persistent-nodemap.slow-path": "invalid-value"
181 unknown value for config "storage.revlog.persistent-nodemap.slow-path": "invalid-value"
182 falling back to default value: abort
182 falling back to default value: abort
183 6b02b8c7b966+ tip
183 6b02b8c7b966+ tip
184
184
185 #endif
185 #endif
186
186
187 $ hg ci -m 'foo'
187 $ hg ci -m 'foo'
188
188
189 #if no-pure no-rust
189 #if no-pure no-rust
190 $ hg debugnodemap --metadata
190 $ hg debugnodemap --metadata
191 uid: ???????????????? (glob)
191 uid: ???????????????? (glob)
192 tip-rev: 5001
192 tip-rev: 5001
193 tip-node: 16395c3cf7e231394735e6b1717823ada303fb0c
193 tip-node: 16395c3cf7e231394735e6b1717823ada303fb0c
194 data-length: 121088
194 data-length: 121088
195 data-unused: 0
195 data-unused: 0
196 data-unused: 0.000%
196 data-unused: 0.000%
197 #else
197 #else
198 $ hg debugnodemap --metadata
198 $ hg debugnodemap --metadata
199 uid: ???????????????? (glob)
199 uid: ???????????????? (glob)
200 tip-rev: 5001
200 tip-rev: 5001
201 tip-node: 16395c3cf7e231394735e6b1717823ada303fb0c
201 tip-node: 16395c3cf7e231394735e6b1717823ada303fb0c
202 data-length: 121344
202 data-length: 121344
203 data-unused: 256
203 data-unused: 256
204 data-unused: 0.211%
204 data-unused: 0.211%
205 #endif
205 #endif
206
206
207 $ f --size .hg/store/00changelog.n
207 $ f --size .hg/store/00changelog.n
208 .hg/store/00changelog.n: size=70
208 .hg/store/00changelog.n: size=70
209
209
210 (The pure code use the debug code that perform incremental update, the C code reencode from scratch)
210 (The pure code use the debug code that perform incremental update, the C code reencode from scratch)
211
211
212 #if pure
212 #if pure
213 $ f --sha256 .hg/store/00changelog-*.nd --size
213 $ f --sha256 .hg/store/00changelog-*.nd --size
214 .hg/store/00changelog-????????????????.nd: size=121344, sha256=cce54c5da5bde3ad72a4938673ed4064c86231b9c64376b082b163fdb20f8f66 (glob)
214 .hg/store/00changelog-????????????????.nd: size=121344, sha256=cce54c5da5bde3ad72a4938673ed4064c86231b9c64376b082b163fdb20f8f66 (glob)
215 #endif
215 #endif
216
216
217 #if rust
217 #if rust
218 $ f --sha256 .hg/store/00changelog-*.nd --size
218 $ f --sha256 .hg/store/00changelog-*.nd --size
219 .hg/store/00changelog-????????????????.nd: size=121344, sha256=952b042fcf614ceb37b542b1b723e04f18f83efe99bee4e0f5ccd232ef470e58 (glob)
219 .hg/store/00changelog-????????????????.nd: size=121344, sha256=952b042fcf614ceb37b542b1b723e04f18f83efe99bee4e0f5ccd232ef470e58 (glob)
220 #endif
220 #endif
221
221
222 #if no-pure no-rust
222 #if no-pure no-rust
223 $ f --sha256 .hg/store/00changelog-*.nd --size
223 $ f --sha256 .hg/store/00changelog-*.nd --size
224 .hg/store/00changelog-????????????????.nd: size=121088, sha256=df7c06a035b96cb28c7287d349d603baef43240be7736fe34eea419a49702e17 (glob)
224 .hg/store/00changelog-????????????????.nd: size=121088, sha256=df7c06a035b96cb28c7287d349d603baef43240be7736fe34eea419a49702e17 (glob)
225 #endif
225 #endif
226
226
227 $ hg debugnodemap --check
227 $ hg debugnodemap --check
228 revision in index: 5002
228 revision in index: 5002
229 revision in nodemap: 5002
229 revision in nodemap: 5002
230
230
231 Test code path without mmap
231 Test code path without mmap
232 ---------------------------
232 ---------------------------
233
233
234 $ echo bar > bar
234 $ echo bar > bar
235 $ hg add bar
235 $ hg add bar
236 $ hg ci -m 'bar' --config storage.revlog.persistent-nodemap.mmap=no
236 $ hg ci -m 'bar' --config storage.revlog.persistent-nodemap.mmap=no
237
237
238 $ hg debugnodemap --check --config storage.revlog.persistent-nodemap.mmap=yes
238 $ hg debugnodemap --check --config storage.revlog.persistent-nodemap.mmap=yes
239 revision in index: 5003
239 revision in index: 5003
240 revision in nodemap: 5003
240 revision in nodemap: 5003
241 $ hg debugnodemap --check --config storage.revlog.persistent-nodemap.mmap=no
241 $ hg debugnodemap --check --config storage.revlog.persistent-nodemap.mmap=no
242 revision in index: 5003
242 revision in index: 5003
243 revision in nodemap: 5003
243 revision in nodemap: 5003
244
244
245
245
246 #if pure
246 #if pure
247 $ hg debugnodemap --metadata
247 $ hg debugnodemap --metadata
248 uid: ???????????????? (glob)
248 uid: ???????????????? (glob)
249 tip-rev: 5002
249 tip-rev: 5002
250 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
250 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
251 data-length: 121600
251 data-length: 121600
252 data-unused: 512
252 data-unused: 512
253 data-unused: 0.421%
253 data-unused: 0.421%
254 $ f --sha256 .hg/store/00changelog-*.nd --size
254 $ f --sha256 .hg/store/00changelog-*.nd --size
255 .hg/store/00changelog-????????????????.nd: size=121600, sha256=def52503d049ccb823974af313a98a935319ba61f40f3aa06a8be4d35c215054 (glob)
255 .hg/store/00changelog-????????????????.nd: size=121600, sha256=def52503d049ccb823974af313a98a935319ba61f40f3aa06a8be4d35c215054 (glob)
256 #endif
256 #endif
257 #if rust
257 #if rust
258 $ hg debugnodemap --metadata
258 $ hg debugnodemap --metadata
259 uid: ???????????????? (glob)
259 uid: ???????????????? (glob)
260 tip-rev: 5002
260 tip-rev: 5002
261 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
261 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
262 data-length: 121600
262 data-length: 121600
263 data-unused: 512
263 data-unused: 512
264 data-unused: 0.421%
264 data-unused: 0.421%
265 $ f --sha256 .hg/store/00changelog-*.nd --size
265 $ f --sha256 .hg/store/00changelog-*.nd --size
266 .hg/store/00changelog-????????????????.nd: size=121600, sha256=dacf5b5f1d4585fee7527d0e67cad5b1ba0930e6a0928f650f779aefb04ce3fb (glob)
266 .hg/store/00changelog-????????????????.nd: size=121600, sha256=dacf5b5f1d4585fee7527d0e67cad5b1ba0930e6a0928f650f779aefb04ce3fb (glob)
267 #endif
267 #endif
268 #if no-pure no-rust
268 #if no-pure no-rust
269 $ hg debugnodemap --metadata
269 $ hg debugnodemap --metadata
270 uid: ???????????????? (glob)
270 uid: ???????????????? (glob)
271 tip-rev: 5002
271 tip-rev: 5002
272 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
272 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
273 data-length: 121088
273 data-length: 121088
274 data-unused: 0
274 data-unused: 0
275 data-unused: 0.000%
275 data-unused: 0.000%
276 $ f --sha256 .hg/store/00changelog-*.nd --size
276 $ f --sha256 .hg/store/00changelog-*.nd --size
277 .hg/store/00changelog-????????????????.nd: size=121088, sha256=59fcede3e3cc587755916ceed29e3c33748cd1aa7d2f91828ac83e7979d935e8 (glob)
277 .hg/store/00changelog-????????????????.nd: size=121088, sha256=59fcede3e3cc587755916ceed29e3c33748cd1aa7d2f91828ac83e7979d935e8 (glob)
278 #endif
278 #endif
279
279
280 Test force warming the cache
280 Test force warming the cache
281
281
282 $ rm .hg/store/00changelog.n
282 $ rm .hg/store/00changelog.n
283 $ hg debugnodemap --metadata
283 $ hg debugnodemap --metadata
284 $ hg debugupdatecache
284 $ hg debugupdatecache
285 #if pure
285 #if pure
286 $ hg debugnodemap --metadata
286 $ hg debugnodemap --metadata
287 uid: ???????????????? (glob)
287 uid: ???????????????? (glob)
288 tip-rev: 5002
288 tip-rev: 5002
289 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
289 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
290 data-length: 121088
290 data-length: 121088
291 data-unused: 0
291 data-unused: 0
292 data-unused: 0.000%
292 data-unused: 0.000%
293 #else
293 #else
294 $ hg debugnodemap --metadata
294 $ hg debugnodemap --metadata
295 uid: ???????????????? (glob)
295 uid: ???????????????? (glob)
296 tip-rev: 5002
296 tip-rev: 5002
297 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
297 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
298 data-length: 121088
298 data-length: 121088
299 data-unused: 0
299 data-unused: 0
300 data-unused: 0.000%
300 data-unused: 0.000%
301 #endif
301 #endif
302
302
303 Check out of sync nodemap
303 Check out of sync nodemap
304 =========================
304 =========================
305
305
306 First copy old data on the side.
306 First copy old data on the side.
307
307
308 $ mkdir ../tmp-copies
308 $ mkdir ../tmp-copies
309 $ cp .hg/store/00changelog-????????????????.nd .hg/store/00changelog.n ../tmp-copies
309 $ cp .hg/store/00changelog-????????????????.nd .hg/store/00changelog.n ../tmp-copies
310
310
311 Nodemap lagging behind
311 Nodemap lagging behind
312 ----------------------
312 ----------------------
313
313
314 make a new commit
314 make a new commit
315
315
316 $ echo bar2 > bar
316 $ echo bar2 > bar
317 $ hg ci -m 'bar2'
317 $ hg ci -m 'bar2'
318 $ NODE=`hg log -r tip -T '{node}\n'`
318 $ NODE=`hg log -r tip -T '{node}\n'`
319 $ hg log -r "$NODE" -T '{rev}\n'
319 $ hg log -r "$NODE" -T '{rev}\n'
320 5003
320 5003
321
321
322 If the nodemap is lagging behind, it can catch up fine
322 If the nodemap is lagging behind, it can catch up fine
323
323
324 $ hg debugnodemap --metadata
324 $ hg debugnodemap --metadata
325 uid: ???????????????? (glob)
325 uid: ???????????????? (glob)
326 tip-rev: 5003
326 tip-rev: 5003
327 tip-node: c9329770f979ade2d16912267c38ba5f82fd37b3
327 tip-node: c9329770f979ade2d16912267c38ba5f82fd37b3
328 data-length: 121344 (pure !)
328 data-length: 121344 (pure !)
329 data-length: 121344 (rust !)
329 data-length: 121344 (rust !)
330 data-length: 121152 (no-rust no-pure !)
330 data-length: 121152 (no-rust no-pure !)
331 data-unused: 192 (pure !)
331 data-unused: 192 (pure !)
332 data-unused: 192 (rust !)
332 data-unused: 192 (rust !)
333 data-unused: 0 (no-rust no-pure !)
333 data-unused: 0 (no-rust no-pure !)
334 data-unused: 0.158% (pure !)
334 data-unused: 0.158% (pure !)
335 data-unused: 0.158% (rust !)
335 data-unused: 0.158% (rust !)
336 data-unused: 0.000% (no-rust no-pure !)
336 data-unused: 0.000% (no-rust no-pure !)
337 $ cp -f ../tmp-copies/* .hg/store/
337 $ cp -f ../tmp-copies/* .hg/store/
338 $ hg debugnodemap --metadata
338 $ hg debugnodemap --metadata
339 uid: ???????????????? (glob)
339 uid: ???????????????? (glob)
340 tip-rev: 5002
340 tip-rev: 5002
341 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
341 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
342 data-length: 121088
342 data-length: 121088
343 data-unused: 0
343 data-unused: 0
344 data-unused: 0.000%
344 data-unused: 0.000%
345 $ hg log -r "$NODE" -T '{rev}\n'
345 $ hg log -r "$NODE" -T '{rev}\n'
346 5003
346 5003
347
347
348 changelog altered
348 changelog altered
349 -----------------
349 -----------------
350
350
351 If the nodemap is not gated behind a requirements, an unaware client can alter
351 If the nodemap is not gated behind a requirements, an unaware client can alter
352 the repository so the revlog used to generate the nodemap is not longer
352 the repository so the revlog used to generate the nodemap is not longer
353 compatible with the persistent nodemap. We need to detect that.
353 compatible with the persistent nodemap. We need to detect that.
354
354
355 $ hg up "$NODE~5"
355 $ hg up "$NODE~5"
356 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
356 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
357 $ echo bar > babar
357 $ echo bar > babar
358 $ hg add babar
358 $ hg add babar
359 $ hg ci -m 'babar'
359 $ hg ci -m 'babar'
360 created new head
360 created new head
361 $ OTHERNODE=`hg log -r tip -T '{node}\n'`
361 $ OTHERNODE=`hg log -r tip -T '{node}\n'`
362 $ hg log -r "$OTHERNODE" -T '{rev}\n'
362 $ hg log -r "$OTHERNODE" -T '{rev}\n'
363 5004
363 5004
364
364
365 $ hg --config extensions.strip= strip --rev "$NODE~1" --no-backup
365 $ hg --config extensions.strip= strip --rev "$NODE~1" --no-backup
366
366
367 the nodemap should detect the changelog have been tampered with and recover.
367 the nodemap should detect the changelog have been tampered with and recover.
368
368
369 $ hg debugnodemap --metadata
369 $ hg debugnodemap --metadata
370 uid: ???????????????? (glob)
370 uid: ???????????????? (glob)
371 tip-rev: 5002
371 tip-rev: 5002
372 tip-node: b355ef8adce0949b8bdf6afc72ca853740d65944
372 tip-node: b355ef8adce0949b8bdf6afc72ca853740d65944
373 data-length: 121536 (pure !)
373 data-length: 121536 (pure !)
374 data-length: 121088 (rust !)
374 data-length: 121088 (rust !)
375 data-length: 121088 (no-pure no-rust !)
375 data-length: 121088 (no-pure no-rust !)
376 data-unused: 448 (pure !)
376 data-unused: 448 (pure !)
377 data-unused: 0 (rust !)
377 data-unused: 0 (rust !)
378 data-unused: 0 (no-pure no-rust !)
378 data-unused: 0 (no-pure no-rust !)
379 data-unused: 0.000% (rust !)
379 data-unused: 0.000% (rust !)
380 data-unused: 0.369% (pure !)
380 data-unused: 0.369% (pure !)
381 data-unused: 0.000% (no-pure no-rust !)
381 data-unused: 0.000% (no-pure no-rust !)
382
382
383 $ cp -f ../tmp-copies/* .hg/store/
383 $ cp -f ../tmp-copies/* .hg/store/
384 $ hg debugnodemap --metadata
384 $ hg debugnodemap --metadata
385 uid: ???????????????? (glob)
385 uid: ???????????????? (glob)
386 tip-rev: 5002
386 tip-rev: 5002
387 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
387 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
388 data-length: 121088
388 data-length: 121088
389 data-unused: 0
389 data-unused: 0
390 data-unused: 0.000%
390 data-unused: 0.000%
391 $ hg log -r "$OTHERNODE" -T '{rev}\n'
391 $ hg log -r "$OTHERNODE" -T '{rev}\n'
392 5002
392 5002
393
393
394 missing data file
394 missing data file
395 -----------------
395 -----------------
396
396
397 $ UUID=`hg debugnodemap --metadata| grep 'uid:' | \
397 $ UUID=`hg debugnodemap --metadata| grep 'uid:' | \
398 > sed 's/uid: //'`
398 > sed 's/uid: //'`
399 $ FILE=.hg/store/00changelog-"${UUID}".nd
399 $ FILE=.hg/store/00changelog-"${UUID}".nd
400 $ mv $FILE ../tmp-data-file
400 $ mv $FILE ../tmp-data-file
401 $ cp .hg/store/00changelog.n ../tmp-docket
401 $ cp .hg/store/00changelog.n ../tmp-docket
402
402
403 mercurial don't crash
403 mercurial don't crash
404
404
405 $ hg log -r .
405 $ hg log -r .
406 changeset: 5002:b355ef8adce0
406 changeset: 5002:b355ef8adce0
407 tag: tip
407 tag: tip
408 parent: 4998:d918ad6d18d3
408 parent: 4998:d918ad6d18d3
409 user: test
409 user: test
410 date: Thu Jan 01 00:00:00 1970 +0000
410 date: Thu Jan 01 00:00:00 1970 +0000
411 summary: babar
411 summary: babar
412
412
413 $ hg debugnodemap --metadata
413 $ hg debugnodemap --metadata
414
414
415 $ hg debugupdatecache
415 $ hg debugupdatecache
416 $ hg debugnodemap --metadata
416 $ hg debugnodemap --metadata
417 uid: * (glob)
417 uid: * (glob)
418 tip-rev: 5002
418 tip-rev: 5002
419 tip-node: b355ef8adce0949b8bdf6afc72ca853740d65944
419 tip-node: b355ef8adce0949b8bdf6afc72ca853740d65944
420 data-length: 121088
420 data-length: 121088
421 data-unused: 0
421 data-unused: 0
422 data-unused: 0.000%
422 data-unused: 0.000%
423 $ mv ../tmp-data-file $FILE
423 $ mv ../tmp-data-file $FILE
424 $ mv ../tmp-docket .hg/store/00changelog.n
424 $ mv ../tmp-docket .hg/store/00changelog.n
425
425
426 Check transaction related property
426 Check transaction related property
427 ==================================
427 ==================================
428
428
429 An up to date nodemap should be available to shell hooks,
429 An up to date nodemap should be available to shell hooks,
430
430
431 $ echo dsljfl > a
431 $ echo dsljfl > a
432 $ hg add a
432 $ hg add a
433 $ hg ci -m a
433 $ hg ci -m a
434 $ hg debugnodemap --metadata
434 $ hg debugnodemap --metadata
435 uid: ???????????????? (glob)
435 uid: ???????????????? (glob)
436 tip-rev: 5003
436 tip-rev: 5003
437 tip-node: a52c5079765b5865d97b993b303a18740113bbb2
437 tip-node: a52c5079765b5865d97b993b303a18740113bbb2
438 data-length: 121088
438 data-length: 121088
439 data-unused: 0
439 data-unused: 0
440 data-unused: 0.000%
440 data-unused: 0.000%
441 $ echo babar2 > babar
441 $ echo babar2 > babar
442 $ hg ci -m 'babar2' --config "hooks.pretxnclose.nodemap-test=hg debugnodemap --metadata"
442 $ hg ci -m 'babar2' --config "hooks.pretxnclose.nodemap-test=hg debugnodemap --metadata"
443 uid: ???????????????? (glob)
443 uid: ???????????????? (glob)
444 tip-rev: 5004
444 tip-rev: 5004
445 tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
445 tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
446 data-length: 121280 (pure !)
446 data-length: 121280 (pure !)
447 data-length: 121280 (rust !)
447 data-length: 121280 (rust !)
448 data-length: 121088 (no-pure no-rust !)
448 data-length: 121088 (no-pure no-rust !)
449 data-unused: 192 (pure !)
449 data-unused: 192 (pure !)
450 data-unused: 192 (rust !)
450 data-unused: 192 (rust !)
451 data-unused: 0 (no-pure no-rust !)
451 data-unused: 0 (no-pure no-rust !)
452 data-unused: 0.158% (pure !)
452 data-unused: 0.158% (pure !)
453 data-unused: 0.158% (rust !)
453 data-unused: 0.158% (rust !)
454 data-unused: 0.000% (no-pure no-rust !)
454 data-unused: 0.000% (no-pure no-rust !)
455 $ hg debugnodemap --metadata
455 $ hg debugnodemap --metadata
456 uid: ???????????????? (glob)
456 uid: ???????????????? (glob)
457 tip-rev: 5004
457 tip-rev: 5004
458 tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
458 tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
459 data-length: 121280 (pure !)
459 data-length: 121280 (pure !)
460 data-length: 121280 (rust !)
460 data-length: 121280 (rust !)
461 data-length: 121088 (no-pure no-rust !)
461 data-length: 121088 (no-pure no-rust !)
462 data-unused: 192 (pure !)
462 data-unused: 192 (pure !)
463 data-unused: 192 (rust !)
463 data-unused: 192 (rust !)
464 data-unused: 0 (no-pure no-rust !)
464 data-unused: 0 (no-pure no-rust !)
465 data-unused: 0.158% (pure !)
465 data-unused: 0.158% (pure !)
466 data-unused: 0.158% (rust !)
466 data-unused: 0.158% (rust !)
467 data-unused: 0.000% (no-pure no-rust !)
467 data-unused: 0.000% (no-pure no-rust !)
468
468
469 Another process does not see the pending nodemap content during run.
469 Another process does not see the pending nodemap content during run.
470
470
471 $ PATH=$RUNTESTDIR/testlib/:$PATH
471 $ PATH=$RUNTESTDIR/testlib/:$PATH
472 $ echo qpoasp > a
472 $ echo qpoasp > a
473 $ hg ci -m a2 \
473 $ hg ci -m a2 \
474 > --config "hooks.pretxnclose=wait-on-file 20 sync-repo-read sync-txn-pending" \
474 > --config "hooks.pretxnclose=wait-on-file 20 sync-repo-read sync-txn-pending" \
475 > --config "hooks.txnclose=touch sync-txn-close" > output.txt 2>&1 &
475 > --config "hooks.txnclose=touch sync-txn-close" > output.txt 2>&1 &
476
476
477 (read the repository while the commit transaction is pending)
477 (read the repository while the commit transaction is pending)
478
478
479 $ wait-on-file 20 sync-txn-pending && \
479 $ wait-on-file 20 sync-txn-pending && \
480 > hg debugnodemap --metadata && \
480 > hg debugnodemap --metadata && \
481 > wait-on-file 20 sync-txn-close sync-repo-read
481 > wait-on-file 20 sync-txn-close sync-repo-read
482 uid: ???????????????? (glob)
482 uid: ???????????????? (glob)
483 tip-rev: 5004
483 tip-rev: 5004
484 tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
484 tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
485 data-length: 121280 (pure !)
485 data-length: 121280 (pure !)
486 data-length: 121280 (rust !)
486 data-length: 121280 (rust !)
487 data-length: 121088 (no-pure no-rust !)
487 data-length: 121088 (no-pure no-rust !)
488 data-unused: 192 (pure !)
488 data-unused: 192 (pure !)
489 data-unused: 192 (rust !)
489 data-unused: 192 (rust !)
490 data-unused: 0 (no-pure no-rust !)
490 data-unused: 0 (no-pure no-rust !)
491 data-unused: 0.158% (pure !)
491 data-unused: 0.158% (pure !)
492 data-unused: 0.158% (rust !)
492 data-unused: 0.158% (rust !)
493 data-unused: 0.000% (no-pure no-rust !)
493 data-unused: 0.000% (no-pure no-rust !)
494 $ hg debugnodemap --metadata
494 $ hg debugnodemap --metadata
495 uid: ???????????????? (glob)
495 uid: ???????????????? (glob)
496 tip-rev: 5005
496 tip-rev: 5005
497 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
497 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
498 data-length: 121536 (pure !)
498 data-length: 121536 (pure !)
499 data-length: 121536 (rust !)
499 data-length: 121536 (rust !)
500 data-length: 121088 (no-pure no-rust !)
500 data-length: 121088 (no-pure no-rust !)
501 data-unused: 448 (pure !)
501 data-unused: 448 (pure !)
502 data-unused: 448 (rust !)
502 data-unused: 448 (rust !)
503 data-unused: 0 (no-pure no-rust !)
503 data-unused: 0 (no-pure no-rust !)
504 data-unused: 0.369% (pure !)
504 data-unused: 0.369% (pure !)
505 data-unused: 0.369% (rust !)
505 data-unused: 0.369% (rust !)
506 data-unused: 0.000% (no-pure no-rust !)
506 data-unused: 0.000% (no-pure no-rust !)
507
507
508 $ cat output.txt
508 $ cat output.txt
509
509
510 Check that a failing transaction will properly revert the data
510 Check that a failing transaction will properly revert the data
511
511
512 $ echo plakfe > a
512 $ echo plakfe > a
513 $ f --size --sha256 .hg/store/00changelog-*.nd
513 $ f --size --sha256 .hg/store/00changelog-*.nd
514 .hg/store/00changelog-????????????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)
514 .hg/store/00changelog-????????????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)
515 .hg/store/00changelog-????????????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)
515 .hg/store/00changelog-????????????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)
516 .hg/store/00changelog-????????????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)
516 .hg/store/00changelog-????????????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)
517 $ hg ci -m a3 --config "extensions.abort=$RUNTESTDIR/testlib/crash_transaction_late.py"
517 $ hg ci -m a3 --config "extensions.abort=$RUNTESTDIR/testlib/crash_transaction_late.py"
518 transaction abort!
518 transaction abort!
519 rollback completed
519 rollback completed
520 abort: This is a late abort
520 abort: This is a late abort
521 [255]
521 [255]
522 $ hg debugnodemap --metadata
522 $ hg debugnodemap --metadata
523 uid: ???????????????? (glob)
523 uid: ???????????????? (glob)
524 tip-rev: 5005
524 tip-rev: 5005
525 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
525 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
526 data-length: 121536 (pure !)
526 data-length: 121536 (pure !)
527 data-length: 121536 (rust !)
527 data-length: 121536 (rust !)
528 data-length: 121088 (no-pure no-rust !)
528 data-length: 121088 (no-pure no-rust !)
529 data-unused: 448 (pure !)
529 data-unused: 448 (pure !)
530 data-unused: 448 (rust !)
530 data-unused: 448 (rust !)
531 data-unused: 0 (no-pure no-rust !)
531 data-unused: 0 (no-pure no-rust !)
532 data-unused: 0.369% (pure !)
532 data-unused: 0.369% (pure !)
533 data-unused: 0.369% (rust !)
533 data-unused: 0.369% (rust !)
534 data-unused: 0.000% (no-pure no-rust !)
534 data-unused: 0.000% (no-pure no-rust !)
535 $ f --size --sha256 .hg/store/00changelog-*.nd
535 $ f --size --sha256 .hg/store/00changelog-*.nd
536 .hg/store/00changelog-????????????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)
536 .hg/store/00changelog-????????????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)
537 .hg/store/00changelog-????????????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)
537 .hg/store/00changelog-????????????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)
538 .hg/store/00changelog-????????????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)
538 .hg/store/00changelog-????????????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)
539
539
540 Check that removing content does not confuse the nodemap
540 Check that removing content does not confuse the nodemap
541 --------------------------------------------------------
541 --------------------------------------------------------
542
542
543 removing data with rollback
543 removing data with rollback
544
544
545 $ echo aso > a
545 $ echo aso > a
546 $ hg ci -m a4
546 $ hg ci -m a4
547 $ hg rollback
547 $ hg rollback
548 repository tip rolled back to revision 5005 (undo commit)
548 repository tip rolled back to revision 5005 (undo commit)
549 working directory now based on revision 5005
549 working directory now based on revision 5005
550 $ hg id -r .
550 $ hg id -r .
551 90d5d3ba2fc4 tip
551 90d5d3ba2fc4 tip
552
552
553 roming data with strip
553 roming data with strip
554
554
555 $ echo aso > a
555 $ echo aso > a
556 $ hg ci -m a4
556 $ hg ci -m a4
557 $ hg --config extensions.strip= strip -r . --no-backup
557 $ hg --config extensions.strip= strip -r . --no-backup
558 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
558 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
559 $ hg id -r . --traceback
559 $ hg id -r . --traceback
560 90d5d3ba2fc4 tip
560 90d5d3ba2fc4 tip
561
561
562 Test upgrade / downgrade
562 Test upgrade / downgrade
563 ========================
563 ========================
564
564
565 downgrading
565 downgrading
566
566
567 $ cat << EOF >> .hg/hgrc
567 $ cat << EOF >> .hg/hgrc
568 > [format]
568 > [format]
569 > use-persistent-nodemap=no
569 > use-persistent-nodemap=no
570 > EOF
570 > EOF
571 $ hg debugformat -v
571 $ hg debugformat -v
572 format-variant repo config default
572 format-variant repo config default
573 fncache: yes yes yes
573 fncache: yes yes yes
574 dotencode: yes yes yes
574 dotencode: yes yes yes
575 generaldelta: yes yes yes
575 generaldelta: yes yes yes
576 share-safe: no no no
576 share-safe: no no no
577 sparserevlog: yes yes yes
577 sparserevlog: yes yes yes
578 sidedata: no no no
578 sidedata: no no no
579 persistent-nodemap: yes no no
579 persistent-nodemap: yes no no
580 copies-sdc: no no no
580 copies-sdc: no no no
581 plain-cl-delta: yes yes yes
581 plain-cl-delta: yes yes yes
582 compression: zlib zlib zlib
582 compression: zlib zlib zlib
583 compression-level: default default default
583 compression-level: default default default
584 $ hg debugupgraderepo --run --no-backup --quiet
584 $ hg debugupgraderepo --run --no-backup --quiet
585 upgrade will perform the following actions:
585 upgrade will perform the following actions:
586
586
587 requirements
587 requirements
588 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
588 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
589 removed: persistent-nodemap
589 removed: persistent-nodemap
590
590
591 processed revlogs:
591 processed revlogs:
592 - all-filelogs
592 - all-filelogs
593 - changelog
593 - changelog
594 - manifest
594 - manifest
595
595
596 $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
596 $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
597 [1]
597 [1]
598 $ hg debugnodemap --metadata
598 $ hg debugnodemap --metadata
599
599
600
600
601 upgrading
601 upgrading
602
602
603 $ cat << EOF >> .hg/hgrc
603 $ cat << EOF >> .hg/hgrc
604 > [format]
604 > [format]
605 > use-persistent-nodemap=yes
605 > use-persistent-nodemap=yes
606 > EOF
606 > EOF
607 $ hg debugformat -v
607 $ hg debugformat -v
608 format-variant repo config default
608 format-variant repo config default
609 fncache: yes yes yes
609 fncache: yes yes yes
610 dotencode: yes yes yes
610 dotencode: yes yes yes
611 generaldelta: yes yes yes
611 generaldelta: yes yes yes
612 share-safe: no no no
612 share-safe: no no no
613 sparserevlog: yes yes yes
613 sparserevlog: yes yes yes
614 sidedata: no no no
614 sidedata: no no no
615 persistent-nodemap: no yes no
615 persistent-nodemap: no yes no
616 copies-sdc: no no no
616 copies-sdc: no no no
617 plain-cl-delta: yes yes yes
617 plain-cl-delta: yes yes yes
618 compression: zlib zlib zlib
618 compression: zlib zlib zlib
619 compression-level: default default default
619 compression-level: default default default
620 $ hg debugupgraderepo --run --no-backup --quiet
620 $ hg debugupgraderepo --run --no-backup
621 upgrade will perform the following actions:
621 upgrade will perform the following actions:
622
622
623 requirements
623 requirements
624 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
624 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
625 added: persistent-nodemap
625 added: persistent-nodemap
626
626
627 persistent-nodemap
628 Speedup revision lookup by node id.
629
627 processed revlogs:
630 processed revlogs:
628 - all-filelogs
631 - all-filelogs
629 - changelog
632 - changelog
630 - manifest
633 - manifest
631
634
635 beginning upgrade...
636 repository locked and read-only
637 creating temporary repository to stage upgraded data: $TESTTMP/test-repo/.hg/upgrade.* (glob)
638 (it is safe to interrupt this process any time before data migration completes)
639 migrating 15018 total revisions (5006 in filelogs, 5006 in manifests, 5006 in changelog)
640 migrating 1.74 MB in store; 569 MB tracked data
641 migrating 5004 filelogs containing 5006 revisions (346 KB in store; 28.2 KB tracked data)
642 finished migrating 5006 filelog revisions across 5004 filelogs; change in size: 0 bytes
643 migrating 1 manifests containing 5006 revisions (765 KB in store; 569 MB tracked data)
644 finished migrating 5006 manifest revisions across 1 manifests; change in size: 0 bytes
645 migrating changelog containing 5006 revisions (673 KB in store; 363 KB tracked data)
646 finished migrating 5006 changelog revisions; change in size: 0 bytes
647 finished migrating 15018 total revisions; total change in store size: 0 bytes
648 copying phaseroots
649 data fully upgraded in a temporary repository
650 marking source repository as being upgraded; clients will be unable to read from repository
651 starting in-place swap of repository data
652 replacing store...
653 store replacement complete; repository was inconsistent for *s (glob)
654 finalizing requirements file and making repository readable again
655 removing temporary repository $TESTTMP/test-repo/.hg/upgrade.* (glob)
632 $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
656 $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
633 00changelog-*.nd (glob)
657 00changelog-*.nd (glob)
634 00changelog.n
658 00changelog.n
635 00manifest-*.nd (glob)
659 00manifest-*.nd (glob)
636 00manifest.n
660 00manifest.n
637
661
638 $ hg debugnodemap --metadata
662 $ hg debugnodemap --metadata
639 uid: * (glob)
663 uid: * (glob)
640 tip-rev: 5005
664 tip-rev: 5005
641 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
665 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
642 data-length: 121088
666 data-length: 121088
643 data-unused: 0
667 data-unused: 0
644 data-unused: 0.000%
668 data-unused: 0.000%
645
669
646 Running unrelated upgrade
670 Running unrelated upgrade
647
671
648 $ hg debugupgraderepo --run --no-backup --quiet --optimize re-delta-all
672 $ hg debugupgraderepo --run --no-backup --quiet --optimize re-delta-all
649 upgrade will perform the following actions:
673 upgrade will perform the following actions:
650
674
651 requirements
675 requirements
652 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store
676 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store
653
677
654 optimisations: re-delta-all
678 optimisations: re-delta-all
655
679
656 processed revlogs:
680 processed revlogs:
657 - all-filelogs
681 - all-filelogs
658 - changelog
682 - changelog
659 - manifest
683 - manifest
660
684
661 $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
685 $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
662 00changelog-*.nd (glob)
686 00changelog-*.nd (glob)
663 00changelog.n
687 00changelog.n
664 00manifest-*.nd (glob)
688 00manifest-*.nd (glob)
665 00manifest.n
689 00manifest.n
666
690
667 $ hg debugnodemap --metadata
691 $ hg debugnodemap --metadata
668 uid: * (glob)
692 uid: * (glob)
669 tip-rev: 5005
693 tip-rev: 5005
670 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
694 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
671 data-length: 121088
695 data-length: 121088
672 data-unused: 0
696 data-unused: 0
673 data-unused: 0.000%
697 data-unused: 0.000%
674
698
675 Persistent nodemap and local/streaming clone
699 Persistent nodemap and local/streaming clone
676 ============================================
700 ============================================
677
701
678 $ cd ..
702 $ cd ..
679
703
680 standard clone
704 standard clone
681 --------------
705 --------------
682
706
683 The persistent nodemap should exist after a streaming clone
707 The persistent nodemap should exist after a streaming clone
684
708
685 $ hg clone --pull --quiet -U test-repo standard-clone
709 $ hg clone --pull --quiet -U test-repo standard-clone
686 $ ls -1 standard-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
710 $ ls -1 standard-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
687 00changelog-*.nd (glob)
711 00changelog-*.nd (glob)
688 00changelog.n
712 00changelog.n
689 00manifest-*.nd (glob)
713 00manifest-*.nd (glob)
690 00manifest.n
714 00manifest.n
691 $ hg -R standard-clone debugnodemap --metadata
715 $ hg -R standard-clone debugnodemap --metadata
692 uid: * (glob)
716 uid: * (glob)
693 tip-rev: 5005
717 tip-rev: 5005
694 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
718 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
695 data-length: 121088
719 data-length: 121088
696 data-unused: 0
720 data-unused: 0
697 data-unused: 0.000%
721 data-unused: 0.000%
698
722
699
723
700 local clone
724 local clone
701 ------------
725 ------------
702
726
703 The persistent nodemap should exist after a streaming clone
727 The persistent nodemap should exist after a streaming clone
704
728
705 $ hg clone -U test-repo local-clone
729 $ hg clone -U test-repo local-clone
706 $ ls -1 local-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
730 $ ls -1 local-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
707 00changelog-*.nd (glob)
731 00changelog-*.nd (glob)
708 00changelog.n
732 00changelog.n
709 00manifest-*.nd (glob)
733 00manifest-*.nd (glob)
710 00manifest.n
734 00manifest.n
711 $ hg -R local-clone debugnodemap --metadata
735 $ hg -R local-clone debugnodemap --metadata
712 uid: * (glob)
736 uid: * (glob)
713 tip-rev: 5005
737 tip-rev: 5005
714 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
738 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
715 data-length: 121088
739 data-length: 121088
716 data-unused: 0
740 data-unused: 0
717 data-unused: 0.000%
741 data-unused: 0.000%
718
742
719 stream clone
743 stream clone
720 ------------
744 ------------
721
745
722 The persistent nodemap should exist after a streaming clone
746 The persistent nodemap should exist after a streaming clone
723
747
724 $ hg clone -U --stream --config ui.ssh="\"$PYTHON\" \"$TESTDIR/dummyssh\"" ssh://user@dummy/test-repo stream-clone --debug | egrep '00(changelog|manifest)'
748 $ hg clone -U --stream --config ui.ssh="\"$PYTHON\" \"$TESTDIR/dummyssh\"" ssh://user@dummy/test-repo stream-clone --debug | egrep '00(changelog|manifest)'
725 adding [s] 00manifest.n (70 bytes)
749 adding [s] 00manifest.n (70 bytes)
726 adding [s] 00manifest.i (313 KB)
750 adding [s] 00manifest.i (313 KB)
727 adding [s] 00manifest.d (452 KB)
751 adding [s] 00manifest.d (452 KB)
728 adding [s] 00manifest-*.nd (118 KB) (glob)
752 adding [s] 00manifest-*.nd (118 KB) (glob)
729 adding [s] 00changelog.n (70 bytes)
753 adding [s] 00changelog.n (70 bytes)
730 adding [s] 00changelog.i (313 KB)
754 adding [s] 00changelog.i (313 KB)
731 adding [s] 00changelog.d (360 KB)
755 adding [s] 00changelog.d (360 KB)
732 adding [s] 00changelog-*.nd (118 KB) (glob)
756 adding [s] 00changelog-*.nd (118 KB) (glob)
733 $ ls -1 stream-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
757 $ ls -1 stream-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
734 00changelog-*.nd (glob)
758 00changelog-*.nd (glob)
735 00changelog.n
759 00changelog.n
736 00manifest-*.nd (glob)
760 00manifest-*.nd (glob)
737 00manifest.n
761 00manifest.n
738 $ hg -R stream-clone debugnodemap --metadata
762 $ hg -R stream-clone debugnodemap --metadata
739 uid: * (glob)
763 uid: * (glob)
740 tip-rev: 5005
764 tip-rev: 5005
741 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
765 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
742 data-length: 121088
766 data-length: 121088
743 data-unused: 0
767 data-unused: 0
744 data-unused: 0.000%
768 data-unused: 0.000%
General Comments 0
You need to be logged in to leave comments. Login now