##// END OF EJS Templates
tests: open file in binary mode in test-upgrade-repo.t...
Matt Harbison -
r43465:86b26f20 default
parent child Browse files
Show More
@@ -1,1493 +1,1493 b''
1 #require no-reposimplestore
1 #require no-reposimplestore
2
2
3 $ cat >> $HGRCPATH << EOF
3 $ cat >> $HGRCPATH << EOF
4 > [extensions]
4 > [extensions]
5 > share =
5 > share =
6 > EOF
6 > EOF
7
7
8 store and revlogv1 are required in source
8 store and revlogv1 are required in source
9
9
10 $ hg --config format.usestore=false init no-store
10 $ hg --config format.usestore=false init no-store
11 $ hg -R no-store debugupgraderepo
11 $ hg -R no-store debugupgraderepo
12 abort: cannot upgrade repository; requirement missing: store
12 abort: cannot upgrade repository; requirement missing: store
13 [255]
13 [255]
14
14
15 $ hg init no-revlogv1
15 $ hg init no-revlogv1
16 $ cat > no-revlogv1/.hg/requires << EOF
16 $ cat > no-revlogv1/.hg/requires << EOF
17 > dotencode
17 > dotencode
18 > fncache
18 > fncache
19 > generaldelta
19 > generaldelta
20 > store
20 > store
21 > EOF
21 > EOF
22
22
23 $ hg -R no-revlogv1 debugupgraderepo
23 $ hg -R no-revlogv1 debugupgraderepo
24 abort: cannot upgrade repository; requirement missing: revlogv1
24 abort: cannot upgrade repository; requirement missing: revlogv1
25 [255]
25 [255]
26
26
27 Cannot upgrade shared repositories
27 Cannot upgrade shared repositories
28
28
29 $ hg init share-parent
29 $ hg init share-parent
30 $ hg -q share share-parent share-child
30 $ hg -q share share-parent share-child
31
31
32 $ hg -R share-child debugupgraderepo
32 $ hg -R share-child debugupgraderepo
33 abort: cannot upgrade repository; unsupported source requirement: shared
33 abort: cannot upgrade repository; unsupported source requirement: shared
34 [255]
34 [255]
35
35
36 Do not yet support upgrading treemanifest repos
36 Do not yet support upgrading treemanifest repos
37
37
38 $ hg --config experimental.treemanifest=true init treemanifest
38 $ hg --config experimental.treemanifest=true init treemanifest
39 $ hg -R treemanifest debugupgraderepo
39 $ hg -R treemanifest debugupgraderepo
40 abort: cannot upgrade repository; unsupported source requirement: treemanifest
40 abort: cannot upgrade repository; unsupported source requirement: treemanifest
41 [255]
41 [255]
42
42
43 Cannot add treemanifest requirement during upgrade
43 Cannot add treemanifest requirement during upgrade
44
44
45 $ hg init disallowaddedreq
45 $ hg init disallowaddedreq
46 $ hg -R disallowaddedreq --config experimental.treemanifest=true debugupgraderepo
46 $ hg -R disallowaddedreq --config experimental.treemanifest=true debugupgraderepo
47 abort: cannot upgrade repository; do not support adding requirement: treemanifest
47 abort: cannot upgrade repository; do not support adding requirement: treemanifest
48 [255]
48 [255]
49
49
50 An upgrade of a repository created with recommended settings only suggests optimizations
50 An upgrade of a repository created with recommended settings only suggests optimizations
51
51
52 $ hg init empty
52 $ hg init empty
53 $ cd empty
53 $ cd empty
54 $ hg debugformat
54 $ hg debugformat
55 format-variant repo
55 format-variant repo
56 fncache: yes
56 fncache: yes
57 dotencode: yes
57 dotencode: yes
58 generaldelta: yes
58 generaldelta: yes
59 sparserevlog: yes
59 sparserevlog: yes
60 sidedata: no
60 sidedata: no
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 debugformat --verbose
65 $ hg debugformat --verbose
66 format-variant repo config default
66 format-variant repo config default
67 fncache: yes yes yes
67 fncache: yes yes yes
68 dotencode: yes yes yes
68 dotencode: yes yes yes
69 generaldelta: yes yes yes
69 generaldelta: yes yes yes
70 sparserevlog: yes yes yes
70 sparserevlog: yes yes yes
71 sidedata: no no no
71 sidedata: no no no
72 copies-sdc: no no no
72 copies-sdc: no no no
73 plain-cl-delta: yes yes yes
73 plain-cl-delta: yes yes yes
74 compression: zlib zlib zlib
74 compression: zlib zlib zlib
75 compression-level: default default default
75 compression-level: default default default
76 $ hg debugformat --verbose --config format.usefncache=no
76 $ hg debugformat --verbose --config format.usefncache=no
77 format-variant repo config default
77 format-variant repo config default
78 fncache: yes no yes
78 fncache: yes no yes
79 dotencode: yes no yes
79 dotencode: yes no yes
80 generaldelta: yes yes yes
80 generaldelta: yes yes yes
81 sparserevlog: yes yes yes
81 sparserevlog: yes yes yes
82 sidedata: no no no
82 sidedata: no no no
83 copies-sdc: no no no
83 copies-sdc: no no no
84 plain-cl-delta: yes yes yes
84 plain-cl-delta: yes yes yes
85 compression: zlib zlib zlib
85 compression: zlib zlib zlib
86 compression-level: default default default
86 compression-level: default default default
87 $ hg debugformat --verbose --config format.usefncache=no --color=debug
87 $ hg debugformat --verbose --config format.usefncache=no --color=debug
88 format-variant repo config default
88 format-variant repo config default
89 [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes]
89 [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes]
90 [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes]
90 [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes]
91 [formatvariant.name.uptodate|generaldelta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
91 [formatvariant.name.uptodate|generaldelta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
92 [formatvariant.name.uptodate|sparserevlog: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
92 [formatvariant.name.uptodate|sparserevlog: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
93 [formatvariant.name.uptodate|sidedata: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
93 [formatvariant.name.uptodate|sidedata: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
94 [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
94 [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
95 [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
95 [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
96 [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib]
96 [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib]
97 [formatvariant.name.uptodate|compression-level:][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default]
97 [formatvariant.name.uptodate|compression-level:][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default]
98 $ hg debugformat -Tjson
98 $ hg debugformat -Tjson
99 [
99 [
100 {
100 {
101 "config": true,
101 "config": true,
102 "default": true,
102 "default": true,
103 "name": "fncache",
103 "name": "fncache",
104 "repo": true
104 "repo": true
105 },
105 },
106 {
106 {
107 "config": true,
107 "config": true,
108 "default": true,
108 "default": true,
109 "name": "dotencode",
109 "name": "dotencode",
110 "repo": true
110 "repo": true
111 },
111 },
112 {
112 {
113 "config": true,
113 "config": true,
114 "default": true,
114 "default": true,
115 "name": "generaldelta",
115 "name": "generaldelta",
116 "repo": true
116 "repo": true
117 },
117 },
118 {
118 {
119 "config": true,
119 "config": true,
120 "default": true,
120 "default": true,
121 "name": "sparserevlog",
121 "name": "sparserevlog",
122 "repo": true
122 "repo": true
123 },
123 },
124 {
124 {
125 "config": false,
125 "config": false,
126 "default": false,
126 "default": false,
127 "name": "sidedata",
127 "name": "sidedata",
128 "repo": false
128 "repo": false
129 },
129 },
130 {
130 {
131 "config": false,
131 "config": false,
132 "default": false,
132 "default": false,
133 "name": "copies-sdc",
133 "name": "copies-sdc",
134 "repo": false
134 "repo": false
135 },
135 },
136 {
136 {
137 "config": true,
137 "config": true,
138 "default": true,
138 "default": true,
139 "name": "plain-cl-delta",
139 "name": "plain-cl-delta",
140 "repo": true
140 "repo": true
141 },
141 },
142 {
142 {
143 "config": "zlib",
143 "config": "zlib",
144 "default": "zlib",
144 "default": "zlib",
145 "name": "compression",
145 "name": "compression",
146 "repo": "zlib"
146 "repo": "zlib"
147 },
147 },
148 {
148 {
149 "config": "default",
149 "config": "default",
150 "default": "default",
150 "default": "default",
151 "name": "compression-level",
151 "name": "compression-level",
152 "repo": "default"
152 "repo": "default"
153 }
153 }
154 ]
154 ]
155 $ hg debugupgraderepo
155 $ hg debugupgraderepo
156 (no feature deficiencies found in existing repository)
156 (no feature deficiencies found in existing repository)
157 performing an upgrade with "--run" will make the following changes:
157 performing an upgrade with "--run" will make the following changes:
158
158
159 requirements
159 requirements
160 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
160 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
161
161
162 sidedata
162 sidedata
163 Allows storage of extra data alongside a revision.
163 Allows storage of extra data alongside a revision.
164
164
165 copies-sdc
165 copies-sdc
166 Allows to use more efficient algorithm to deal with copy tracing.
166 Allows to use more efficient algorithm to deal with copy tracing.
167
167
168 additional optimizations are available by specifying "--optimize <name>":
168 additional optimizations are available by specifying "--optimize <name>":
169
169
170 re-delta-parent
170 re-delta-parent
171 deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower
171 deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower
172
172
173 re-delta-multibase
173 re-delta-multibase
174 deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges
174 deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges
175
175
176 re-delta-all
176 re-delta-all
177 deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed
177 deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed
178
178
179 re-delta-fulladd
179 re-delta-fulladd
180 every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved.
180 every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved.
181
181
182
182
183 --optimize can be used to add optimizations
183 --optimize can be used to add optimizations
184
184
185 $ hg debugupgrade --optimize redeltaparent
185 $ hg debugupgrade --optimize redeltaparent
186 (no feature deficiencies found in existing repository)
186 (no feature deficiencies found in existing repository)
187 performing an upgrade with "--run" will make the following changes:
187 performing an upgrade with "--run" will make the following changes:
188
188
189 requirements
189 requirements
190 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
190 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
191
191
192 sidedata
192 sidedata
193 Allows storage of extra data alongside a revision.
193 Allows storage of extra data alongside a revision.
194
194
195 copies-sdc
195 copies-sdc
196 Allows to use more efficient algorithm to deal with copy tracing.
196 Allows to use more efficient algorithm to deal with copy tracing.
197
197
198 re-delta-parent
198 re-delta-parent
199 deltas within internal storage will choose a new base revision if needed
199 deltas within internal storage will choose a new base revision if needed
200
200
201 additional optimizations are available by specifying "--optimize <name>":
201 additional optimizations are available by specifying "--optimize <name>":
202
202
203 re-delta-multibase
203 re-delta-multibase
204 deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges
204 deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges
205
205
206 re-delta-all
206 re-delta-all
207 deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed
207 deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed
208
208
209 re-delta-fulladd
209 re-delta-fulladd
210 every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved.
210 every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved.
211
211
212
212
213 modern form of the option
213 modern form of the option
214
214
215 $ hg debugupgrade --optimize re-delta-parent
215 $ hg debugupgrade --optimize re-delta-parent
216 (no feature deficiencies found in existing repository)
216 (no feature deficiencies found in existing repository)
217 performing an upgrade with "--run" will make the following changes:
217 performing an upgrade with "--run" will make the following changes:
218
218
219 requirements
219 requirements
220 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
220 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
221
221
222 sidedata
222 sidedata
223 Allows storage of extra data alongside a revision.
223 Allows storage of extra data alongside a revision.
224
224
225 copies-sdc
225 copies-sdc
226 Allows to use more efficient algorithm to deal with copy tracing.
226 Allows to use more efficient algorithm to deal with copy tracing.
227
227
228 re-delta-parent
228 re-delta-parent
229 deltas within internal storage will choose a new base revision if needed
229 deltas within internal storage will choose a new base revision if needed
230
230
231 additional optimizations are available by specifying "--optimize <name>":
231 additional optimizations are available by specifying "--optimize <name>":
232
232
233 re-delta-multibase
233 re-delta-multibase
234 deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges
234 deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges
235
235
236 re-delta-all
236 re-delta-all
237 deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed
237 deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed
238
238
239 re-delta-fulladd
239 re-delta-fulladd
240 every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved.
240 every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved.
241
241
242
242
243 unknown optimization:
243 unknown optimization:
244
244
245 $ hg debugupgrade --optimize foobar
245 $ hg debugupgrade --optimize foobar
246 abort: unknown optimization action requested: foobar
246 abort: unknown optimization action requested: foobar
247 (run without arguments to see valid optimizations)
247 (run without arguments to see valid optimizations)
248 [255]
248 [255]
249
249
250 Various sub-optimal detections work
250 Various sub-optimal detections work
251
251
252 $ cat > .hg/requires << EOF
252 $ cat > .hg/requires << EOF
253 > revlogv1
253 > revlogv1
254 > store
254 > store
255 > EOF
255 > EOF
256
256
257 $ hg debugformat
257 $ hg debugformat
258 format-variant repo
258 format-variant repo
259 fncache: no
259 fncache: no
260 dotencode: no
260 dotencode: no
261 generaldelta: no
261 generaldelta: no
262 sparserevlog: no
262 sparserevlog: no
263 sidedata: no
263 sidedata: no
264 copies-sdc: no
264 copies-sdc: no
265 plain-cl-delta: yes
265 plain-cl-delta: yes
266 compression: zlib
266 compression: zlib
267 compression-level: default
267 compression-level: default
268 $ hg debugformat --verbose
268 $ hg debugformat --verbose
269 format-variant repo config default
269 format-variant repo config default
270 fncache: no yes yes
270 fncache: no yes yes
271 dotencode: no yes yes
271 dotencode: no yes yes
272 generaldelta: no yes yes
272 generaldelta: no yes yes
273 sparserevlog: no yes yes
273 sparserevlog: no yes yes
274 sidedata: no no no
274 sidedata: no no no
275 copies-sdc: no no no
275 copies-sdc: no no no
276 plain-cl-delta: yes yes yes
276 plain-cl-delta: yes yes yes
277 compression: zlib zlib zlib
277 compression: zlib zlib zlib
278 compression-level: default default default
278 compression-level: default default default
279 $ hg debugformat --verbose --config format.usegeneraldelta=no
279 $ hg debugformat --verbose --config format.usegeneraldelta=no
280 format-variant repo config default
280 format-variant repo config default
281 fncache: no yes yes
281 fncache: no yes yes
282 dotencode: no yes yes
282 dotencode: no yes yes
283 generaldelta: no no yes
283 generaldelta: no no yes
284 sparserevlog: no no yes
284 sparserevlog: no no yes
285 sidedata: no no no
285 sidedata: no no no
286 copies-sdc: no no no
286 copies-sdc: no no no
287 plain-cl-delta: yes yes yes
287 plain-cl-delta: yes yes yes
288 compression: zlib zlib zlib
288 compression: zlib zlib zlib
289 compression-level: default default default
289 compression-level: default default default
290 $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug
290 $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug
291 format-variant repo config default
291 format-variant repo config default
292 [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes]
292 [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes]
293 [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes]
293 [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes]
294 [formatvariant.name.mismatchdefault|generaldelta: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes]
294 [formatvariant.name.mismatchdefault|generaldelta: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes]
295 [formatvariant.name.mismatchdefault|sparserevlog: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes]
295 [formatvariant.name.mismatchdefault|sparserevlog: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes]
296 [formatvariant.name.uptodate|sidedata: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
296 [formatvariant.name.uptodate|sidedata: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
297 [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
297 [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
298 [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
298 [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
299 [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib]
299 [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib]
300 [formatvariant.name.uptodate|compression-level:][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default]
300 [formatvariant.name.uptodate|compression-level:][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default]
301 $ hg debugupgraderepo
301 $ hg debugupgraderepo
302 repository lacks features recommended by current config options:
302 repository lacks features recommended by current config options:
303
303
304 fncache
304 fncache
305 long and reserved filenames may not work correctly; repository performance is sub-optimal
305 long and reserved filenames may not work correctly; repository performance is sub-optimal
306
306
307 dotencode
307 dotencode
308 storage of filenames beginning with a period or space may not work correctly
308 storage of filenames beginning with a period or space may not work correctly
309
309
310 generaldelta
310 generaldelta
311 deltas within internal storage are unable to choose optimal revisions; repository is larger and slower than it could be; interaction with other repositories may require extra network and CPU resources, making "hg push" and "hg pull" slower
311 deltas within internal storage are unable to choose optimal revisions; repository is larger and slower than it could be; interaction with other repositories may require extra network and CPU resources, making "hg push" and "hg pull" slower
312
312
313 sparserevlog
313 sparserevlog
314 in order to limit disk reading and memory usage on older version, the span of a delta chain from its root to its end is limited, whatever the relevant data in this span. This can severly limit Mercurial ability to build good chain of delta resulting is much more storage space being taken and limit reusability of on disk delta during exchange.
314 in order to limit disk reading and memory usage on older version, the span of a delta chain from its root to its end is limited, whatever the relevant data in this span. This can severly limit Mercurial ability to build good chain of delta resulting is much more storage space being taken and limit reusability of on disk delta during exchange.
315
315
316
316
317 performing an upgrade with "--run" will make the following changes:
317 performing an upgrade with "--run" will make the following changes:
318
318
319 requirements
319 requirements
320 preserved: revlogv1, store
320 preserved: revlogv1, store
321 added: dotencode, fncache, generaldelta, sparserevlog
321 added: dotencode, fncache, generaldelta, sparserevlog
322
322
323 fncache
323 fncache
324 repository will be more resilient to storing certain paths and performance of certain operations should be improved
324 repository will be more resilient to storing certain paths and performance of certain operations should be improved
325
325
326 dotencode
326 dotencode
327 repository will be better able to store files beginning with a space or period
327 repository will be better able to store files beginning with a space or period
328
328
329 generaldelta
329 generaldelta
330 repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster
330 repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster
331
331
332 sparserevlog
332 sparserevlog
333 Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server.
333 Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server.
334
334
335 sidedata
335 sidedata
336 Allows storage of extra data alongside a revision.
336 Allows storage of extra data alongside a revision.
337
337
338 copies-sdc
338 copies-sdc
339 Allows to use more efficient algorithm to deal with copy tracing.
339 Allows to use more efficient algorithm to deal with copy tracing.
340
340
341 additional optimizations are available by specifying "--optimize <name>":
341 additional optimizations are available by specifying "--optimize <name>":
342
342
343 re-delta-parent
343 re-delta-parent
344 deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower
344 deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower
345
345
346 re-delta-multibase
346 re-delta-multibase
347 deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges
347 deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges
348
348
349 re-delta-all
349 re-delta-all
350 deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed
350 deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed
351
351
352 re-delta-fulladd
352 re-delta-fulladd
353 every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved.
353 every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved.
354
354
355
355
356 $ hg --config format.dotencode=false debugupgraderepo
356 $ hg --config format.dotencode=false debugupgraderepo
357 repository lacks features recommended by current config options:
357 repository lacks features recommended by current config options:
358
358
359 fncache
359 fncache
360 long and reserved filenames may not work correctly; repository performance is sub-optimal
360 long and reserved filenames may not work correctly; repository performance is sub-optimal
361
361
362 generaldelta
362 generaldelta
363 deltas within internal storage are unable to choose optimal revisions; repository is larger and slower than it could be; interaction with other repositories may require extra network and CPU resources, making "hg push" and "hg pull" slower
363 deltas within internal storage are unable to choose optimal revisions; repository is larger and slower than it could be; interaction with other repositories may require extra network and CPU resources, making "hg push" and "hg pull" slower
364
364
365 sparserevlog
365 sparserevlog
366 in order to limit disk reading and memory usage on older version, the span of a delta chain from its root to its end is limited, whatever the relevant data in this span. This can severly limit Mercurial ability to build good chain of delta resulting is much more storage space being taken and limit reusability of on disk delta during exchange.
366 in order to limit disk reading and memory usage on older version, the span of a delta chain from its root to its end is limited, whatever the relevant data in this span. This can severly limit Mercurial ability to build good chain of delta resulting is much more storage space being taken and limit reusability of on disk delta during exchange.
367
367
368 repository lacks features used by the default config options:
368 repository lacks features used by the default config options:
369
369
370 dotencode
370 dotencode
371 storage of filenames beginning with a period or space may not work correctly
371 storage of filenames beginning with a period or space may not work correctly
372
372
373
373
374 performing an upgrade with "--run" will make the following changes:
374 performing an upgrade with "--run" will make the following changes:
375
375
376 requirements
376 requirements
377 preserved: revlogv1, store
377 preserved: revlogv1, store
378 added: fncache, generaldelta, sparserevlog
378 added: fncache, generaldelta, sparserevlog
379
379
380 fncache
380 fncache
381 repository will be more resilient to storing certain paths and performance of certain operations should be improved
381 repository will be more resilient to storing certain paths and performance of certain operations should be improved
382
382
383 generaldelta
383 generaldelta
384 repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster
384 repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster
385
385
386 sparserevlog
386 sparserevlog
387 Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server.
387 Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server.
388
388
389 sidedata
389 sidedata
390 Allows storage of extra data alongside a revision.
390 Allows storage of extra data alongside a revision.
391
391
392 copies-sdc
392 copies-sdc
393 Allows to use more efficient algorithm to deal with copy tracing.
393 Allows to use more efficient algorithm to deal with copy tracing.
394
394
395 additional optimizations are available by specifying "--optimize <name>":
395 additional optimizations are available by specifying "--optimize <name>":
396
396
397 re-delta-parent
397 re-delta-parent
398 deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower
398 deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower
399
399
400 re-delta-multibase
400 re-delta-multibase
401 deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges
401 deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges
402
402
403 re-delta-all
403 re-delta-all
404 deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed
404 deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed
405
405
406 re-delta-fulladd
406 re-delta-fulladd
407 every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved.
407 every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved.
408
408
409
409
410 $ cd ..
410 $ cd ..
411
411
412 Upgrading a repository that is already modern essentially no-ops
412 Upgrading a repository that is already modern essentially no-ops
413
413
414 $ hg init modern
414 $ hg init modern
415 $ hg -R modern debugupgraderepo --run
415 $ hg -R modern debugupgraderepo --run
416 upgrade will perform the following actions:
416 upgrade will perform the following actions:
417
417
418 requirements
418 requirements
419 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
419 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
420
420
421 sidedata
421 sidedata
422 Allows storage of extra data alongside a revision.
422 Allows storage of extra data alongside a revision.
423
423
424 copies-sdc
424 copies-sdc
425 Allows to use more efficient algorithm to deal with copy tracing.
425 Allows to use more efficient algorithm to deal with copy tracing.
426
426
427 beginning upgrade...
427 beginning upgrade...
428 repository locked and read-only
428 repository locked and read-only
429 creating temporary repository to stage migrated data: $TESTTMP/modern/.hg/upgrade.* (glob)
429 creating temporary repository to stage migrated data: $TESTTMP/modern/.hg/upgrade.* (glob)
430 (it is safe to interrupt this process any time before data migration completes)
430 (it is safe to interrupt this process any time before data migration completes)
431 data fully migrated to temporary repository
431 data fully migrated to temporary repository
432 marking source repository as being upgraded; clients will be unable to read from repository
432 marking source repository as being upgraded; clients will be unable to read from repository
433 starting in-place swap of repository data
433 starting in-place swap of repository data
434 replaced files will be backed up at $TESTTMP/modern/.hg/upgradebackup.* (glob)
434 replaced files will be backed up at $TESTTMP/modern/.hg/upgradebackup.* (glob)
435 replacing store...
435 replacing store...
436 store replacement complete; repository was inconsistent for *s (glob)
436 store replacement complete; repository was inconsistent for *s (glob)
437 finalizing requirements file and making repository readable again
437 finalizing requirements file and making repository readable again
438 removing temporary repository $TESTTMP/modern/.hg/upgrade.* (glob)
438 removing temporary repository $TESTTMP/modern/.hg/upgrade.* (glob)
439 copy of old repository backed up at $TESTTMP/modern/.hg/upgradebackup.* (glob)
439 copy of old repository backed up at $TESTTMP/modern/.hg/upgradebackup.* (glob)
440 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
440 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
441
441
442 Upgrading a repository to generaldelta works
442 Upgrading a repository to generaldelta works
443
443
444 $ hg --config format.usegeneraldelta=false init upgradegd
444 $ hg --config format.usegeneraldelta=false init upgradegd
445 $ cd upgradegd
445 $ cd upgradegd
446 $ touch f0
446 $ touch f0
447 $ hg -q commit -A -m initial
447 $ hg -q commit -A -m initial
448 $ mkdir FooBarDirectory.d
448 $ mkdir FooBarDirectory.d
449 $ touch FooBarDirectory.d/f1
449 $ touch FooBarDirectory.d/f1
450 $ hg -q commit -A -m 'add f1'
450 $ hg -q commit -A -m 'add f1'
451 $ hg -q up -r 0
451 $ hg -q up -r 0
452 >>> from __future__ import absolute_import, print_function
452 >>> from __future__ import absolute_import, print_function
453 >>> import random
453 >>> import random
454 >>> random.seed(0) # have a reproducible content
454 >>> random.seed(0) # have a reproducible content
455 >>> with open("f2", "w") as f:
455 >>> with open("f2", "wb") as f:
456 ... for i in range(100000):
456 ... for i in range(100000):
457 ... f.write("%d\n" % random.randint(1000000000, 9999999999)) and None
457 ... f.write(b"%d\n" % random.randint(1000000000, 9999999999)) and None
458 $ hg -q commit -A -m 'add f2'
458 $ hg -q commit -A -m 'add f2'
459
459
460 make sure we have a .d file
460 make sure we have a .d file
461
461
462 $ ls -d .hg/store/data/*
462 $ ls -d .hg/store/data/*
463 .hg/store/data/_foo_bar_directory.d.hg
463 .hg/store/data/_foo_bar_directory.d.hg
464 .hg/store/data/f0.i
464 .hg/store/data/f0.i
465 .hg/store/data/f2.d
465 .hg/store/data/f2.d
466 .hg/store/data/f2.i
466 .hg/store/data/f2.i
467
467
468 $ hg debugupgraderepo --run --config format.sparse-revlog=false
468 $ hg debugupgraderepo --run --config format.sparse-revlog=false
469 upgrade will perform the following actions:
469 upgrade will perform the following actions:
470
470
471 requirements
471 requirements
472 preserved: dotencode, fncache, revlogv1, store
472 preserved: dotencode, fncache, revlogv1, store
473 added: generaldelta
473 added: generaldelta
474
474
475 generaldelta
475 generaldelta
476 repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster
476 repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster
477
477
478 sidedata
478 sidedata
479 Allows storage of extra data alongside a revision.
479 Allows storage of extra data alongside a revision.
480
480
481 copies-sdc
481 copies-sdc
482 Allows to use more efficient algorithm to deal with copy tracing.
482 Allows to use more efficient algorithm to deal with copy tracing.
483
483
484 beginning upgrade...
484 beginning upgrade...
485 repository locked and read-only
485 repository locked and read-only
486 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
486 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
487 (it is safe to interrupt this process any time before data migration completes)
487 (it is safe to interrupt this process any time before data migration completes)
488 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
488 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
489 migrating 519 KB in store; 1.05 MB tracked data
489 migrating 519 KB in store; 1.05 MB tracked data
490 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
490 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
491 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
491 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
492 migrating 1 manifests containing 3 revisions (384 bytes in store; 238 bytes tracked data)
492 migrating 1 manifests containing 3 revisions (384 bytes in store; 238 bytes tracked data)
493 finished migrating 3 manifest revisions across 1 manifests; change in size: -17 bytes
493 finished migrating 3 manifest revisions across 1 manifests; change in size: -17 bytes
494 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
494 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
495 finished migrating 3 changelog revisions; change in size: 0 bytes
495 finished migrating 3 changelog revisions; change in size: 0 bytes
496 finished migrating 9 total revisions; total change in store size: -17 bytes
496 finished migrating 9 total revisions; total change in store size: -17 bytes
497 copying phaseroots
497 copying phaseroots
498 data fully migrated to temporary repository
498 data fully migrated to temporary repository
499 marking source repository as being upgraded; clients will be unable to read from repository
499 marking source repository as being upgraded; clients will be unable to read from repository
500 starting in-place swap of repository data
500 starting in-place swap of repository data
501 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
501 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
502 replacing store...
502 replacing store...
503 store replacement complete; repository was inconsistent for *s (glob)
503 store replacement complete; repository was inconsistent for *s (glob)
504 finalizing requirements file and making repository readable again
504 finalizing requirements file and making repository readable again
505 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
505 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
506 copy of old repository backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
506 copy of old repository backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
507 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
507 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
508
508
509 Original requirements backed up
509 Original requirements backed up
510
510
511 $ cat .hg/upgradebackup.*/requires
511 $ cat .hg/upgradebackup.*/requires
512 dotencode
512 dotencode
513 fncache
513 fncache
514 revlogv1
514 revlogv1
515 store
515 store
516
516
517 generaldelta added to original requirements files
517 generaldelta added to original requirements files
518
518
519 $ cat .hg/requires
519 $ cat .hg/requires
520 dotencode
520 dotencode
521 fncache
521 fncache
522 generaldelta
522 generaldelta
523 revlogv1
523 revlogv1
524 store
524 store
525
525
526 store directory has files we expect
526 store directory has files we expect
527
527
528 $ ls .hg/store
528 $ ls .hg/store
529 00changelog.i
529 00changelog.i
530 00manifest.i
530 00manifest.i
531 data
531 data
532 fncache
532 fncache
533 phaseroots
533 phaseroots
534 undo
534 undo
535 undo.backupfiles
535 undo.backupfiles
536 undo.phaseroots
536 undo.phaseroots
537
537
538 manifest should be generaldelta
538 manifest should be generaldelta
539
539
540 $ hg debugrevlog -m | grep flags
540 $ hg debugrevlog -m | grep flags
541 flags : inline, generaldelta
541 flags : inline, generaldelta
542
542
543 verify should be happy
543 verify should be happy
544
544
545 $ hg verify
545 $ hg verify
546 checking changesets
546 checking changesets
547 checking manifests
547 checking manifests
548 crosschecking files in changesets and manifests
548 crosschecking files in changesets and manifests
549 checking files
549 checking files
550 checked 3 changesets with 3 changes to 3 files
550 checked 3 changesets with 3 changes to 3 files
551
551
552 old store should be backed up
552 old store should be backed up
553
553
554 $ ls -d .hg/upgradebackup.*/
554 $ ls -d .hg/upgradebackup.*/
555 .hg/upgradebackup.*/ (glob)
555 .hg/upgradebackup.*/ (glob)
556 $ ls .hg/upgradebackup.*/store
556 $ ls .hg/upgradebackup.*/store
557 00changelog.i
557 00changelog.i
558 00manifest.i
558 00manifest.i
559 data
559 data
560 fncache
560 fncache
561 phaseroots
561 phaseroots
562 undo
562 undo
563 undo.backup.fncache
563 undo.backup.fncache
564 undo.backupfiles
564 undo.backupfiles
565 undo.phaseroots
565 undo.phaseroots
566
566
567 unless --no-backup is passed
567 unless --no-backup is passed
568
568
569 $ rm -rf .hg/upgradebackup.*/
569 $ rm -rf .hg/upgradebackup.*/
570 $ hg debugupgraderepo --run --no-backup
570 $ hg debugupgraderepo --run --no-backup
571 upgrade will perform the following actions:
571 upgrade will perform the following actions:
572
572
573 requirements
573 requirements
574 preserved: dotencode, fncache, generaldelta, revlogv1, store
574 preserved: dotencode, fncache, generaldelta, revlogv1, store
575 added: sparserevlog
575 added: sparserevlog
576
576
577 sparserevlog
577 sparserevlog
578 Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server.
578 Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server.
579
579
580 sidedata
580 sidedata
581 Allows storage of extra data alongside a revision.
581 Allows storage of extra data alongside a revision.
582
582
583 copies-sdc
583 copies-sdc
584 Allows to use more efficient algorithm to deal with copy tracing.
584 Allows to use more efficient algorithm to deal with copy tracing.
585
585
586 beginning upgrade...
586 beginning upgrade...
587 repository locked and read-only
587 repository locked and read-only
588 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
588 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
589 (it is safe to interrupt this process any time before data migration completes)
589 (it is safe to interrupt this process any time before data migration completes)
590 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
590 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
591 migrating 519 KB in store; 1.05 MB tracked data
591 migrating 519 KB in store; 1.05 MB tracked data
592 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
592 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
593 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
593 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
594 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
594 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
595 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
595 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
596 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
596 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
597 finished migrating 3 changelog revisions; change in size: 0 bytes
597 finished migrating 3 changelog revisions; change in size: 0 bytes
598 finished migrating 9 total revisions; total change in store size: 0 bytes
598 finished migrating 9 total revisions; total change in store size: 0 bytes
599 copying phaseroots
599 copying phaseroots
600 data fully migrated to temporary repository
600 data fully migrated to temporary repository
601 marking source repository as being upgraded; clients will be unable to read from repository
601 marking source repository as being upgraded; clients will be unable to read from repository
602 starting in-place swap of repository data
602 starting in-place swap of repository data
603 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
603 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
604 replacing store...
604 replacing store...
605 store replacement complete; repository was inconsistent for * (glob)
605 store replacement complete; repository was inconsistent for * (glob)
606 finalizing requirements file and making repository readable again
606 finalizing requirements file and making repository readable again
607 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
607 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
608 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
608 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
609 $ ls -1 .hg/ | grep upgradebackup
609 $ ls -1 .hg/ | grep upgradebackup
610 [1]
610 [1]
611
611
612 We can restrict optimization to some revlog:
612 We can restrict optimization to some revlog:
613
613
614 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
614 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
615 upgrade will perform the following actions:
615 upgrade will perform the following actions:
616
616
617 requirements
617 requirements
618 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
618 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
619
619
620 sidedata
620 sidedata
621 Allows storage of extra data alongside a revision.
621 Allows storage of extra data alongside a revision.
622
622
623 copies-sdc
623 copies-sdc
624 Allows to use more efficient algorithm to deal with copy tracing.
624 Allows to use more efficient algorithm to deal with copy tracing.
625
625
626 re-delta-parent
626 re-delta-parent
627 deltas within internal storage will choose a new base revision if needed
627 deltas within internal storage will choose a new base revision if needed
628
628
629 beginning upgrade...
629 beginning upgrade...
630 repository locked and read-only
630 repository locked and read-only
631 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
631 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
632 (it is safe to interrupt this process any time before data migration completes)
632 (it is safe to interrupt this process any time before data migration completes)
633 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
633 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
634 migrating 519 KB in store; 1.05 MB tracked data
634 migrating 519 KB in store; 1.05 MB tracked data
635 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
635 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
636 blindly copying data/FooBarDirectory.d/f1.i containing 1 revisions
636 blindly copying data/FooBarDirectory.d/f1.i containing 1 revisions
637 blindly copying data/f0.i containing 1 revisions
637 blindly copying data/f0.i containing 1 revisions
638 blindly copying data/f2.i containing 1 revisions
638 blindly copying data/f2.i containing 1 revisions
639 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
639 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
640 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
640 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
641 cloning 3 revisions from 00manifest.i
641 cloning 3 revisions from 00manifest.i
642 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
642 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
643 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
643 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
644 blindly copying 00changelog.i containing 3 revisions
644 blindly copying 00changelog.i containing 3 revisions
645 finished migrating 3 changelog revisions; change in size: 0 bytes
645 finished migrating 3 changelog revisions; change in size: 0 bytes
646 finished migrating 9 total revisions; total change in store size: 0 bytes
646 finished migrating 9 total revisions; total change in store size: 0 bytes
647 copying phaseroots
647 copying phaseroots
648 data fully migrated to temporary repository
648 data fully migrated to temporary repository
649 marking source repository as being upgraded; clients will be unable to read from repository
649 marking source repository as being upgraded; clients will be unable to read from repository
650 starting in-place swap of repository data
650 starting in-place swap of repository data
651 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
651 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
652 replacing store...
652 replacing store...
653 store replacement complete; repository was inconsistent for *s (glob)
653 store replacement complete; repository was inconsistent for *s (glob)
654 finalizing requirements file and making repository readable again
654 finalizing requirements file and making repository readable again
655 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
655 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
656 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
656 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
657
657
658 Check that the repo still works fine
658 Check that the repo still works fine
659
659
660 $ hg log -G --stat
660 $ hg log -G --stat
661 @ changeset: 2:76d4395f5413 (no-py3 !)
661 @ changeset: 2:76d4395f5413 (no-py3 !)
662 @ changeset: 2:fca376863211 (py3 !)
662 @ changeset: 2:fca376863211 (py3 !)
663 | tag: tip
663 | tag: tip
664 | parent: 0:ba592bf28da2
664 | parent: 0:ba592bf28da2
665 | user: test
665 | user: test
666 | date: Thu Jan 01 00:00:00 1970 +0000
666 | date: Thu Jan 01 00:00:00 1970 +0000
667 | summary: add f2
667 | summary: add f2
668 |
668 |
669 | f2 | 100000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
669 | f2 | 100000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
670 | 1 files changed, 100000 insertions(+), 0 deletions(-)
670 | 1 files changed, 100000 insertions(+), 0 deletions(-)
671 |
671 |
672 | o changeset: 1:2029ce2354e2
672 | o changeset: 1:2029ce2354e2
673 |/ user: test
673 |/ user: test
674 | date: Thu Jan 01 00:00:00 1970 +0000
674 | date: Thu Jan 01 00:00:00 1970 +0000
675 | summary: add f1
675 | summary: add f1
676 |
676 |
677 |
677 |
678 o changeset: 0:ba592bf28da2
678 o changeset: 0:ba592bf28da2
679 user: test
679 user: test
680 date: Thu Jan 01 00:00:00 1970 +0000
680 date: Thu Jan 01 00:00:00 1970 +0000
681 summary: initial
681 summary: initial
682
682
683
683
684
684
685 $ hg verify
685 $ hg verify
686 checking changesets
686 checking changesets
687 checking manifests
687 checking manifests
688 crosschecking files in changesets and manifests
688 crosschecking files in changesets and manifests
689 checking files
689 checking files
690 checked 3 changesets with 3 changes to 3 files
690 checked 3 changesets with 3 changes to 3 files
691
691
692 Check we can select negatively
692 Check we can select negatively
693
693
694 $ hg debugupgrade --optimize re-delta-parent --run --no-manifest --no-backup --debug --traceback
694 $ hg debugupgrade --optimize re-delta-parent --run --no-manifest --no-backup --debug --traceback
695 upgrade will perform the following actions:
695 upgrade will perform the following actions:
696
696
697 requirements
697 requirements
698 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
698 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
699
699
700 sidedata
700 sidedata
701 Allows storage of extra data alongside a revision.
701 Allows storage of extra data alongside a revision.
702
702
703 copies-sdc
703 copies-sdc
704 Allows to use more efficient algorithm to deal with copy tracing.
704 Allows to use more efficient algorithm to deal with copy tracing.
705
705
706 re-delta-parent
706 re-delta-parent
707 deltas within internal storage will choose a new base revision if needed
707 deltas within internal storage will choose a new base revision if needed
708
708
709 beginning upgrade...
709 beginning upgrade...
710 repository locked and read-only
710 repository locked and read-only
711 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
711 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
712 (it is safe to interrupt this process any time before data migration completes)
712 (it is safe to interrupt this process any time before data migration completes)
713 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
713 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
714 migrating 519 KB in store; 1.05 MB tracked data
714 migrating 519 KB in store; 1.05 MB tracked data
715 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
715 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
716 cloning 1 revisions from data/FooBarDirectory.d/f1.i
716 cloning 1 revisions from data/FooBarDirectory.d/f1.i
717 cloning 1 revisions from data/f0.i
717 cloning 1 revisions from data/f0.i
718 cloning 1 revisions from data/f2.i
718 cloning 1 revisions from data/f2.i
719 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
719 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
720 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
720 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
721 blindly copying 00manifest.i containing 3 revisions
721 blindly copying 00manifest.i containing 3 revisions
722 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
722 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
723 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
723 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
724 cloning 3 revisions from 00changelog.i
724 cloning 3 revisions from 00changelog.i
725 finished migrating 3 changelog revisions; change in size: 0 bytes
725 finished migrating 3 changelog revisions; change in size: 0 bytes
726 finished migrating 9 total revisions; total change in store size: 0 bytes
726 finished migrating 9 total revisions; total change in store size: 0 bytes
727 copying phaseroots
727 copying phaseroots
728 data fully migrated to temporary repository
728 data fully migrated to temporary repository
729 marking source repository as being upgraded; clients will be unable to read from repository
729 marking source repository as being upgraded; clients will be unable to read from repository
730 starting in-place swap of repository data
730 starting in-place swap of repository data
731 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
731 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
732 replacing store...
732 replacing store...
733 store replacement complete; repository was inconsistent for *s (glob)
733 store replacement complete; repository was inconsistent for *s (glob)
734 finalizing requirements file and making repository readable again
734 finalizing requirements file and making repository readable again
735 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
735 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
736 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
736 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
737 $ hg verify
737 $ hg verify
738 checking changesets
738 checking changesets
739 checking manifests
739 checking manifests
740 crosschecking files in changesets and manifests
740 crosschecking files in changesets and manifests
741 checking files
741 checking files
742 checked 3 changesets with 3 changes to 3 files
742 checked 3 changesets with 3 changes to 3 files
743
743
744 Check that we can select changelog only
744 Check that we can select changelog only
745
745
746 $ hg debugupgrade --optimize re-delta-parent --run --changelog --no-backup --debug --traceback
746 $ hg debugupgrade --optimize re-delta-parent --run --changelog --no-backup --debug --traceback
747 upgrade will perform the following actions:
747 upgrade will perform the following actions:
748
748
749 requirements
749 requirements
750 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
750 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
751
751
752 sidedata
752 sidedata
753 Allows storage of extra data alongside a revision.
753 Allows storage of extra data alongside a revision.
754
754
755 copies-sdc
755 copies-sdc
756 Allows to use more efficient algorithm to deal with copy tracing.
756 Allows to use more efficient algorithm to deal with copy tracing.
757
757
758 re-delta-parent
758 re-delta-parent
759 deltas within internal storage will choose a new base revision if needed
759 deltas within internal storage will choose a new base revision if needed
760
760
761 beginning upgrade...
761 beginning upgrade...
762 repository locked and read-only
762 repository locked and read-only
763 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
763 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
764 (it is safe to interrupt this process any time before data migration completes)
764 (it is safe to interrupt this process any time before data migration completes)
765 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
765 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
766 migrating 519 KB in store; 1.05 MB tracked data
766 migrating 519 KB in store; 1.05 MB tracked data
767 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
767 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
768 blindly copying data/FooBarDirectory.d/f1.i containing 1 revisions
768 blindly copying data/FooBarDirectory.d/f1.i containing 1 revisions
769 blindly copying data/f0.i containing 1 revisions
769 blindly copying data/f0.i containing 1 revisions
770 blindly copying data/f2.i containing 1 revisions
770 blindly copying data/f2.i containing 1 revisions
771 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
771 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
772 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
772 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
773 blindly copying 00manifest.i containing 3 revisions
773 blindly copying 00manifest.i containing 3 revisions
774 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
774 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
775 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
775 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
776 cloning 3 revisions from 00changelog.i
776 cloning 3 revisions from 00changelog.i
777 finished migrating 3 changelog revisions; change in size: 0 bytes
777 finished migrating 3 changelog revisions; change in size: 0 bytes
778 finished migrating 9 total revisions; total change in store size: 0 bytes
778 finished migrating 9 total revisions; total change in store size: 0 bytes
779 copying phaseroots
779 copying phaseroots
780 data fully migrated to temporary repository
780 data fully migrated to temporary repository
781 marking source repository as being upgraded; clients will be unable to read from repository
781 marking source repository as being upgraded; clients will be unable to read from repository
782 starting in-place swap of repository data
782 starting in-place swap of repository data
783 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
783 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
784 replacing store...
784 replacing store...
785 store replacement complete; repository was inconsistent for *s (glob)
785 store replacement complete; repository was inconsistent for *s (glob)
786 finalizing requirements file and making repository readable again
786 finalizing requirements file and making repository readable again
787 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
787 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
788 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
788 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
789 $ hg verify
789 $ hg verify
790 checking changesets
790 checking changesets
791 checking manifests
791 checking manifests
792 crosschecking files in changesets and manifests
792 crosschecking files in changesets and manifests
793 checking files
793 checking files
794 checked 3 changesets with 3 changes to 3 files
794 checked 3 changesets with 3 changes to 3 files
795
795
796 Check that we can select filelog only
796 Check that we can select filelog only
797
797
798 $ hg debugupgrade --optimize re-delta-parent --run --no-changelog --no-manifest --no-backup --debug --traceback
798 $ hg debugupgrade --optimize re-delta-parent --run --no-changelog --no-manifest --no-backup --debug --traceback
799 upgrade will perform the following actions:
799 upgrade will perform the following actions:
800
800
801 requirements
801 requirements
802 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
802 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
803
803
804 sidedata
804 sidedata
805 Allows storage of extra data alongside a revision.
805 Allows storage of extra data alongside a revision.
806
806
807 copies-sdc
807 copies-sdc
808 Allows to use more efficient algorithm to deal with copy tracing.
808 Allows to use more efficient algorithm to deal with copy tracing.
809
809
810 re-delta-parent
810 re-delta-parent
811 deltas within internal storage will choose a new base revision if needed
811 deltas within internal storage will choose a new base revision if needed
812
812
813 beginning upgrade...
813 beginning upgrade...
814 repository locked and read-only
814 repository locked and read-only
815 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
815 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
816 (it is safe to interrupt this process any time before data migration completes)
816 (it is safe to interrupt this process any time before data migration completes)
817 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
817 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
818 migrating 519 KB in store; 1.05 MB tracked data
818 migrating 519 KB in store; 1.05 MB tracked data
819 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
819 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
820 cloning 1 revisions from data/FooBarDirectory.d/f1.i
820 cloning 1 revisions from data/FooBarDirectory.d/f1.i
821 cloning 1 revisions from data/f0.i
821 cloning 1 revisions from data/f0.i
822 cloning 1 revisions from data/f2.i
822 cloning 1 revisions from data/f2.i
823 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
823 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
824 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
824 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
825 blindly copying 00manifest.i containing 3 revisions
825 blindly copying 00manifest.i containing 3 revisions
826 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
826 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
827 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
827 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
828 blindly copying 00changelog.i containing 3 revisions
828 blindly copying 00changelog.i containing 3 revisions
829 finished migrating 3 changelog revisions; change in size: 0 bytes
829 finished migrating 3 changelog revisions; change in size: 0 bytes
830 finished migrating 9 total revisions; total change in store size: 0 bytes
830 finished migrating 9 total revisions; total change in store size: 0 bytes
831 copying phaseroots
831 copying phaseroots
832 data fully migrated to temporary repository
832 data fully migrated to temporary repository
833 marking source repository as being upgraded; clients will be unable to read from repository
833 marking source repository as being upgraded; clients will be unable to read from repository
834 starting in-place swap of repository data
834 starting in-place swap of repository data
835 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
835 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
836 replacing store...
836 replacing store...
837 store replacement complete; repository was inconsistent for *s (glob)
837 store replacement complete; repository was inconsistent for *s (glob)
838 finalizing requirements file and making repository readable again
838 finalizing requirements file and making repository readable again
839 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
839 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
840 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
840 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
841 $ hg verify
841 $ hg verify
842 checking changesets
842 checking changesets
843 checking manifests
843 checking manifests
844 crosschecking files in changesets and manifests
844 crosschecking files in changesets and manifests
845 checking files
845 checking files
846 checked 3 changesets with 3 changes to 3 files
846 checked 3 changesets with 3 changes to 3 files
847
847
848
848
849 Check you can't skip revlog clone during important format downgrade
849 Check you can't skip revlog clone during important format downgrade
850
850
851 $ echo "[format]" > .hg/hgrc
851 $ echo "[format]" > .hg/hgrc
852 $ echo "sparse-revlog=no" >> .hg/hgrc
852 $ echo "sparse-revlog=no" >> .hg/hgrc
853 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
853 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
854 ignoring revlogs selection flags, format requirements change: sparserevlog
854 ignoring revlogs selection flags, format requirements change: sparserevlog
855 upgrade will perform the following actions:
855 upgrade will perform the following actions:
856
856
857 requirements
857 requirements
858 preserved: dotencode, fncache, generaldelta, revlogv1, store
858 preserved: dotencode, fncache, generaldelta, revlogv1, store
859 removed: sparserevlog
859 removed: sparserevlog
860
860
861 sidedata
861 sidedata
862 Allows storage of extra data alongside a revision.
862 Allows storage of extra data alongside a revision.
863
863
864 copies-sdc
864 copies-sdc
865 Allows to use more efficient algorithm to deal with copy tracing.
865 Allows to use more efficient algorithm to deal with copy tracing.
866
866
867 re-delta-parent
867 re-delta-parent
868 deltas within internal storage will choose a new base revision if needed
868 deltas within internal storage will choose a new base revision if needed
869
869
870 beginning upgrade...
870 beginning upgrade...
871 repository locked and read-only
871 repository locked and read-only
872 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
872 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
873 (it is safe to interrupt this process any time before data migration completes)
873 (it is safe to interrupt this process any time before data migration completes)
874 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
874 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
875 migrating 519 KB in store; 1.05 MB tracked data
875 migrating 519 KB in store; 1.05 MB tracked data
876 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
876 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
877 cloning 1 revisions from data/FooBarDirectory.d/f1.i
877 cloning 1 revisions from data/FooBarDirectory.d/f1.i
878 cloning 1 revisions from data/f0.i
878 cloning 1 revisions from data/f0.i
879 cloning 1 revisions from data/f2.i
879 cloning 1 revisions from data/f2.i
880 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
880 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
881 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
881 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
882 cloning 3 revisions from 00manifest.i
882 cloning 3 revisions from 00manifest.i
883 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
883 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
884 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
884 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
885 cloning 3 revisions from 00changelog.i
885 cloning 3 revisions from 00changelog.i
886 finished migrating 3 changelog revisions; change in size: 0 bytes
886 finished migrating 3 changelog revisions; change in size: 0 bytes
887 finished migrating 9 total revisions; total change in store size: 0 bytes
887 finished migrating 9 total revisions; total change in store size: 0 bytes
888 copying phaseroots
888 copying phaseroots
889 data fully migrated to temporary repository
889 data fully migrated to temporary repository
890 marking source repository as being upgraded; clients will be unable to read from repository
890 marking source repository as being upgraded; clients will be unable to read from repository
891 starting in-place swap of repository data
891 starting in-place swap of repository data
892 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
892 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
893 replacing store...
893 replacing store...
894 store replacement complete; repository was inconsistent for *s (glob)
894 store replacement complete; repository was inconsistent for *s (glob)
895 finalizing requirements file and making repository readable again
895 finalizing requirements file and making repository readable again
896 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
896 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
897 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
897 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
898 $ hg verify
898 $ hg verify
899 checking changesets
899 checking changesets
900 checking manifests
900 checking manifests
901 crosschecking files in changesets and manifests
901 crosschecking files in changesets and manifests
902 checking files
902 checking files
903 checked 3 changesets with 3 changes to 3 files
903 checked 3 changesets with 3 changes to 3 files
904
904
905 Check you can't skip revlog clone during important format upgrade
905 Check you can't skip revlog clone during important format upgrade
906
906
907 $ echo "sparse-revlog=yes" >> .hg/hgrc
907 $ echo "sparse-revlog=yes" >> .hg/hgrc
908 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
908 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
909 ignoring revlogs selection flags, format requirements change: sparserevlog
909 ignoring revlogs selection flags, format requirements change: sparserevlog
910 upgrade will perform the following actions:
910 upgrade will perform the following actions:
911
911
912 requirements
912 requirements
913 preserved: dotencode, fncache, generaldelta, revlogv1, store
913 preserved: dotencode, fncache, generaldelta, revlogv1, store
914 added: sparserevlog
914 added: sparserevlog
915
915
916 sparserevlog
916 sparserevlog
917 Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server.
917 Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server.
918
918
919 sidedata
919 sidedata
920 Allows storage of extra data alongside a revision.
920 Allows storage of extra data alongside a revision.
921
921
922 copies-sdc
922 copies-sdc
923 Allows to use more efficient algorithm to deal with copy tracing.
923 Allows to use more efficient algorithm to deal with copy tracing.
924
924
925 re-delta-parent
925 re-delta-parent
926 deltas within internal storage will choose a new base revision if needed
926 deltas within internal storage will choose a new base revision if needed
927
927
928 beginning upgrade...
928 beginning upgrade...
929 repository locked and read-only
929 repository locked and read-only
930 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
930 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
931 (it is safe to interrupt this process any time before data migration completes)
931 (it is safe to interrupt this process any time before data migration completes)
932 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
932 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
933 migrating 519 KB in store; 1.05 MB tracked data
933 migrating 519 KB in store; 1.05 MB tracked data
934 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
934 migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data)
935 cloning 1 revisions from data/FooBarDirectory.d/f1.i
935 cloning 1 revisions from data/FooBarDirectory.d/f1.i
936 cloning 1 revisions from data/f0.i
936 cloning 1 revisions from data/f0.i
937 cloning 1 revisions from data/f2.i
937 cloning 1 revisions from data/f2.i
938 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
938 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
939 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
939 migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
940 cloning 3 revisions from 00manifest.i
940 cloning 3 revisions from 00manifest.i
941 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
941 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
942 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
942 migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
943 cloning 3 revisions from 00changelog.i
943 cloning 3 revisions from 00changelog.i
944 finished migrating 3 changelog revisions; change in size: 0 bytes
944 finished migrating 3 changelog revisions; change in size: 0 bytes
945 finished migrating 9 total revisions; total change in store size: 0 bytes
945 finished migrating 9 total revisions; total change in store size: 0 bytes
946 copying phaseroots
946 copying phaseroots
947 data fully migrated to temporary repository
947 data fully migrated to temporary repository
948 marking source repository as being upgraded; clients will be unable to read from repository
948 marking source repository as being upgraded; clients will be unable to read from repository
949 starting in-place swap of repository data
949 starting in-place swap of repository data
950 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
950 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
951 replacing store...
951 replacing store...
952 store replacement complete; repository was inconsistent for *s (glob)
952 store replacement complete; repository was inconsistent for *s (glob)
953 finalizing requirements file and making repository readable again
953 finalizing requirements file and making repository readable again
954 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
954 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
955 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
955 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
956 $ hg verify
956 $ hg verify
957 checking changesets
957 checking changesets
958 checking manifests
958 checking manifests
959 crosschecking files in changesets and manifests
959 crosschecking files in changesets and manifests
960 checking files
960 checking files
961 checked 3 changesets with 3 changes to 3 files
961 checked 3 changesets with 3 changes to 3 files
962
962
963 $ cd ..
963 $ cd ..
964
964
965 store files with special filenames aren't encoded during copy
965 store files with special filenames aren't encoded during copy
966
966
967 $ hg init store-filenames
967 $ hg init store-filenames
968 $ cd store-filenames
968 $ cd store-filenames
969 $ touch foo
969 $ touch foo
970 $ hg -q commit -A -m initial
970 $ hg -q commit -A -m initial
971 $ touch .hg/store/.XX_special_filename
971 $ touch .hg/store/.XX_special_filename
972
972
973 $ hg debugupgraderepo --run
973 $ hg debugupgraderepo --run
974 upgrade will perform the following actions:
974 upgrade will perform the following actions:
975
975
976 requirements
976 requirements
977 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
977 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
978
978
979 sidedata
979 sidedata
980 Allows storage of extra data alongside a revision.
980 Allows storage of extra data alongside a revision.
981
981
982 copies-sdc
982 copies-sdc
983 Allows to use more efficient algorithm to deal with copy tracing.
983 Allows to use more efficient algorithm to deal with copy tracing.
984
984
985 beginning upgrade...
985 beginning upgrade...
986 repository locked and read-only
986 repository locked and read-only
987 creating temporary repository to stage migrated data: $TESTTMP/store-filenames/.hg/upgrade.* (glob)
987 creating temporary repository to stage migrated data: $TESTTMP/store-filenames/.hg/upgrade.* (glob)
988 (it is safe to interrupt this process any time before data migration completes)
988 (it is safe to interrupt this process any time before data migration completes)
989 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
989 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
990 migrating 301 bytes in store; 107 bytes tracked data
990 migrating 301 bytes in store; 107 bytes tracked data
991 migrating 1 filelogs containing 1 revisions (64 bytes in store; 0 bytes tracked data)
991 migrating 1 filelogs containing 1 revisions (64 bytes in store; 0 bytes tracked data)
992 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
992 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
993 migrating 1 manifests containing 1 revisions (110 bytes in store; 45 bytes tracked data)
993 migrating 1 manifests containing 1 revisions (110 bytes in store; 45 bytes tracked data)
994 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
994 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
995 migrating changelog containing 1 revisions (127 bytes in store; 62 bytes tracked data)
995 migrating changelog containing 1 revisions (127 bytes in store; 62 bytes tracked data)
996 finished migrating 1 changelog revisions; change in size: 0 bytes
996 finished migrating 1 changelog revisions; change in size: 0 bytes
997 finished migrating 3 total revisions; total change in store size: 0 bytes
997 finished migrating 3 total revisions; total change in store size: 0 bytes
998 copying .XX_special_filename
998 copying .XX_special_filename
999 copying phaseroots
999 copying phaseroots
1000 data fully migrated to temporary repository
1000 data fully migrated to temporary repository
1001 marking source repository as being upgraded; clients will be unable to read from repository
1001 marking source repository as being upgraded; clients will be unable to read from repository
1002 starting in-place swap of repository data
1002 starting in-place swap of repository data
1003 replaced files will be backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
1003 replaced files will be backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
1004 replacing store...
1004 replacing store...
1005 store replacement complete; repository was inconsistent for *s (glob)
1005 store replacement complete; repository was inconsistent for *s (glob)
1006 finalizing requirements file and making repository readable again
1006 finalizing requirements file and making repository readable again
1007 removing temporary repository $TESTTMP/store-filenames/.hg/upgrade.* (glob)
1007 removing temporary repository $TESTTMP/store-filenames/.hg/upgrade.* (glob)
1008 copy of old repository backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
1008 copy of old repository backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
1009 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1009 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1010 $ hg debugupgraderepo --run --optimize redeltafulladd
1010 $ hg debugupgraderepo --run --optimize redeltafulladd
1011 upgrade will perform the following actions:
1011 upgrade will perform the following actions:
1012
1012
1013 requirements
1013 requirements
1014 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
1014 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
1015
1015
1016 sidedata
1016 sidedata
1017 Allows storage of extra data alongside a revision.
1017 Allows storage of extra data alongside a revision.
1018
1018
1019 copies-sdc
1019 copies-sdc
1020 Allows to use more efficient algorithm to deal with copy tracing.
1020 Allows to use more efficient algorithm to deal with copy tracing.
1021
1021
1022 re-delta-fulladd
1022 re-delta-fulladd
1023 each revision will be added as new content to the internal storage; this will likely drastically slow down execution time, but some extensions might need it
1023 each revision will be added as new content to the internal storage; this will likely drastically slow down execution time, but some extensions might need it
1024
1024
1025 beginning upgrade...
1025 beginning upgrade...
1026 repository locked and read-only
1026 repository locked and read-only
1027 creating temporary repository to stage migrated data: $TESTTMP/store-filenames/.hg/upgrade.* (glob)
1027 creating temporary repository to stage migrated data: $TESTTMP/store-filenames/.hg/upgrade.* (glob)
1028 (it is safe to interrupt this process any time before data migration completes)
1028 (it is safe to interrupt this process any time before data migration completes)
1029 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
1029 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
1030 migrating 301 bytes in store; 107 bytes tracked data
1030 migrating 301 bytes in store; 107 bytes tracked data
1031 migrating 1 filelogs containing 1 revisions (64 bytes in store; 0 bytes tracked data)
1031 migrating 1 filelogs containing 1 revisions (64 bytes in store; 0 bytes tracked data)
1032 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
1032 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
1033 migrating 1 manifests containing 1 revisions (110 bytes in store; 45 bytes tracked data)
1033 migrating 1 manifests containing 1 revisions (110 bytes in store; 45 bytes tracked data)
1034 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
1034 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
1035 migrating changelog containing 1 revisions (127 bytes in store; 62 bytes tracked data)
1035 migrating changelog containing 1 revisions (127 bytes in store; 62 bytes tracked data)
1036 finished migrating 1 changelog revisions; change in size: 0 bytes
1036 finished migrating 1 changelog revisions; change in size: 0 bytes
1037 finished migrating 3 total revisions; total change in store size: 0 bytes
1037 finished migrating 3 total revisions; total change in store size: 0 bytes
1038 copying .XX_special_filename
1038 copying .XX_special_filename
1039 copying phaseroots
1039 copying phaseroots
1040 data fully migrated to temporary repository
1040 data fully migrated to temporary repository
1041 marking source repository as being upgraded; clients will be unable to read from repository
1041 marking source repository as being upgraded; clients will be unable to read from repository
1042 starting in-place swap of repository data
1042 starting in-place swap of repository data
1043 replaced files will be backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
1043 replaced files will be backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
1044 replacing store...
1044 replacing store...
1045 store replacement complete; repository was inconsistent for *s (glob)
1045 store replacement complete; repository was inconsistent for *s (glob)
1046 finalizing requirements file and making repository readable again
1046 finalizing requirements file and making repository readable again
1047 removing temporary repository $TESTTMP/store-filenames/.hg/upgrade.* (glob)
1047 removing temporary repository $TESTTMP/store-filenames/.hg/upgrade.* (glob)
1048 copy of old repository backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
1048 copy of old repository backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
1049 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1049 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1050
1050
1051 fncache is valid after upgrade
1051 fncache is valid after upgrade
1052
1052
1053 $ hg debugrebuildfncache
1053 $ hg debugrebuildfncache
1054 fncache already up to date
1054 fncache already up to date
1055
1055
1056 $ cd ..
1056 $ cd ..
1057
1057
1058 Check upgrading a large file repository
1058 Check upgrading a large file repository
1059 ---------------------------------------
1059 ---------------------------------------
1060
1060
1061 $ hg init largefilesrepo
1061 $ hg init largefilesrepo
1062 $ cat << EOF >> largefilesrepo/.hg/hgrc
1062 $ cat << EOF >> largefilesrepo/.hg/hgrc
1063 > [extensions]
1063 > [extensions]
1064 > largefiles =
1064 > largefiles =
1065 > EOF
1065 > EOF
1066
1066
1067 $ cd largefilesrepo
1067 $ cd largefilesrepo
1068 $ touch foo
1068 $ touch foo
1069 $ hg add --large foo
1069 $ hg add --large foo
1070 $ hg -q commit -m initial
1070 $ hg -q commit -m initial
1071 $ cat .hg/requires
1071 $ cat .hg/requires
1072 dotencode
1072 dotencode
1073 fncache
1073 fncache
1074 generaldelta
1074 generaldelta
1075 largefiles
1075 largefiles
1076 revlogv1
1076 revlogv1
1077 sparserevlog
1077 sparserevlog
1078 store
1078 store
1079
1079
1080 $ hg debugupgraderepo --run
1080 $ hg debugupgraderepo --run
1081 upgrade will perform the following actions:
1081 upgrade will perform the following actions:
1082
1082
1083 requirements
1083 requirements
1084 preserved: dotencode, fncache, generaldelta, largefiles, revlogv1, sparserevlog, store
1084 preserved: dotencode, fncache, generaldelta, largefiles, revlogv1, sparserevlog, store
1085
1085
1086 sidedata
1086 sidedata
1087 Allows storage of extra data alongside a revision.
1087 Allows storage of extra data alongside a revision.
1088
1088
1089 copies-sdc
1089 copies-sdc
1090 Allows to use more efficient algorithm to deal with copy tracing.
1090 Allows to use more efficient algorithm to deal with copy tracing.
1091
1091
1092 beginning upgrade...
1092 beginning upgrade...
1093 repository locked and read-only
1093 repository locked and read-only
1094 creating temporary repository to stage migrated data: $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
1094 creating temporary repository to stage migrated data: $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
1095 (it is safe to interrupt this process any time before data migration completes)
1095 (it is safe to interrupt this process any time before data migration completes)
1096 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
1096 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
1097 migrating 355 bytes in store; 160 bytes tracked data
1097 migrating 355 bytes in store; 160 bytes tracked data
1098 migrating 1 filelogs containing 1 revisions (106 bytes in store; 41 bytes tracked data)
1098 migrating 1 filelogs containing 1 revisions (106 bytes in store; 41 bytes tracked data)
1099 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
1099 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
1100 migrating 1 manifests containing 1 revisions (116 bytes in store; 51 bytes tracked data)
1100 migrating 1 manifests containing 1 revisions (116 bytes in store; 51 bytes tracked data)
1101 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
1101 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
1102 migrating changelog containing 1 revisions (133 bytes in store; 68 bytes tracked data)
1102 migrating changelog containing 1 revisions (133 bytes in store; 68 bytes tracked data)
1103 finished migrating 1 changelog revisions; change in size: 0 bytes
1103 finished migrating 1 changelog revisions; change in size: 0 bytes
1104 finished migrating 3 total revisions; total change in store size: 0 bytes
1104 finished migrating 3 total revisions; total change in store size: 0 bytes
1105 copying phaseroots
1105 copying phaseroots
1106 data fully migrated to temporary repository
1106 data fully migrated to temporary repository
1107 marking source repository as being upgraded; clients will be unable to read from repository
1107 marking source repository as being upgraded; clients will be unable to read from repository
1108 starting in-place swap of repository data
1108 starting in-place swap of repository data
1109 replaced files will be backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
1109 replaced files will be backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
1110 replacing store...
1110 replacing store...
1111 store replacement complete; repository was inconsistent for *s (glob)
1111 store replacement complete; repository was inconsistent for *s (glob)
1112 finalizing requirements file and making repository readable again
1112 finalizing requirements file and making repository readable again
1113 removing temporary repository $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
1113 removing temporary repository $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
1114 copy of old repository backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
1114 copy of old repository backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
1115 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1115 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1116 $ cat .hg/requires
1116 $ cat .hg/requires
1117 dotencode
1117 dotencode
1118 fncache
1118 fncache
1119 generaldelta
1119 generaldelta
1120 largefiles
1120 largefiles
1121 revlogv1
1121 revlogv1
1122 sparserevlog
1122 sparserevlog
1123 store
1123 store
1124
1124
1125 $ cat << EOF >> .hg/hgrc
1125 $ cat << EOF >> .hg/hgrc
1126 > [extensions]
1126 > [extensions]
1127 > lfs =
1127 > lfs =
1128 > [lfs]
1128 > [lfs]
1129 > threshold = 10
1129 > threshold = 10
1130 > EOF
1130 > EOF
1131 $ echo '123456789012345' > lfs.bin
1131 $ echo '123456789012345' > lfs.bin
1132 $ hg ci -Am 'lfs.bin'
1132 $ hg ci -Am 'lfs.bin'
1133 adding lfs.bin
1133 adding lfs.bin
1134 $ grep lfs .hg/requires
1134 $ grep lfs .hg/requires
1135 lfs
1135 lfs
1136 $ find .hg/store/lfs -type f
1136 $ find .hg/store/lfs -type f
1137 .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
1137 .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
1138
1138
1139 $ hg debugupgraderepo --run
1139 $ hg debugupgraderepo --run
1140 upgrade will perform the following actions:
1140 upgrade will perform the following actions:
1141
1141
1142 requirements
1142 requirements
1143 preserved: dotencode, fncache, generaldelta, largefiles, lfs, revlogv1, sparserevlog, store
1143 preserved: dotencode, fncache, generaldelta, largefiles, lfs, revlogv1, sparserevlog, store
1144
1144
1145 sidedata
1145 sidedata
1146 Allows storage of extra data alongside a revision.
1146 Allows storage of extra data alongside a revision.
1147
1147
1148 copies-sdc
1148 copies-sdc
1149 Allows to use more efficient algorithm to deal with copy tracing.
1149 Allows to use more efficient algorithm to deal with copy tracing.
1150
1150
1151 beginning upgrade...
1151 beginning upgrade...
1152 repository locked and read-only
1152 repository locked and read-only
1153 creating temporary repository to stage migrated data: $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
1153 creating temporary repository to stage migrated data: $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
1154 (it is safe to interrupt this process any time before data migration completes)
1154 (it is safe to interrupt this process any time before data migration completes)
1155 migrating 6 total revisions (2 in filelogs, 2 in manifests, 2 in changelog)
1155 migrating 6 total revisions (2 in filelogs, 2 in manifests, 2 in changelog)
1156 migrating 801 bytes in store; 467 bytes tracked data
1156 migrating 801 bytes in store; 467 bytes tracked data
1157 migrating 2 filelogs containing 2 revisions (296 bytes in store; 182 bytes tracked data)
1157 migrating 2 filelogs containing 2 revisions (296 bytes in store; 182 bytes tracked data)
1158 finished migrating 2 filelog revisions across 2 filelogs; change in size: 0 bytes
1158 finished migrating 2 filelog revisions across 2 filelogs; change in size: 0 bytes
1159 migrating 1 manifests containing 2 revisions (241 bytes in store; 151 bytes tracked data)
1159 migrating 1 manifests containing 2 revisions (241 bytes in store; 151 bytes tracked data)
1160 finished migrating 2 manifest revisions across 1 manifests; change in size: 0 bytes
1160 finished migrating 2 manifest revisions across 1 manifests; change in size: 0 bytes
1161 migrating changelog containing 2 revisions (264 bytes in store; 134 bytes tracked data)
1161 migrating changelog containing 2 revisions (264 bytes in store; 134 bytes tracked data)
1162 finished migrating 2 changelog revisions; change in size: 0 bytes
1162 finished migrating 2 changelog revisions; change in size: 0 bytes
1163 finished migrating 6 total revisions; total change in store size: 0 bytes
1163 finished migrating 6 total revisions; total change in store size: 0 bytes
1164 copying phaseroots
1164 copying phaseroots
1165 copying lfs blob d0beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
1165 copying lfs blob d0beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
1166 data fully migrated to temporary repository
1166 data fully migrated to temporary repository
1167 marking source repository as being upgraded; clients will be unable to read from repository
1167 marking source repository as being upgraded; clients will be unable to read from repository
1168 starting in-place swap of repository data
1168 starting in-place swap of repository data
1169 replaced files will be backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
1169 replaced files will be backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
1170 replacing store...
1170 replacing store...
1171 store replacement complete; repository was inconsistent for *s (glob)
1171 store replacement complete; repository was inconsistent for *s (glob)
1172 finalizing requirements file and making repository readable again
1172 finalizing requirements file and making repository readable again
1173 removing temporary repository $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
1173 removing temporary repository $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
1174 copy of old repository backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
1174 copy of old repository backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
1175 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1175 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1176
1176
1177 $ grep lfs .hg/requires
1177 $ grep lfs .hg/requires
1178 lfs
1178 lfs
1179 $ find .hg/store/lfs -type f
1179 $ find .hg/store/lfs -type f
1180 .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
1180 .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
1181 $ hg verify
1181 $ hg verify
1182 checking changesets
1182 checking changesets
1183 checking manifests
1183 checking manifests
1184 crosschecking files in changesets and manifests
1184 crosschecking files in changesets and manifests
1185 checking files
1185 checking files
1186 checked 2 changesets with 2 changes to 2 files
1186 checked 2 changesets with 2 changes to 2 files
1187 $ hg debugdata lfs.bin 0
1187 $ hg debugdata lfs.bin 0
1188 version https://git-lfs.github.com/spec/v1
1188 version https://git-lfs.github.com/spec/v1
1189 oid sha256:d0beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
1189 oid sha256:d0beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
1190 size 16
1190 size 16
1191 x-is-binary 0
1191 x-is-binary 0
1192
1192
1193 $ cd ..
1193 $ cd ..
1194
1194
1195 repository config is taken in account
1195 repository config is taken in account
1196 -------------------------------------
1196 -------------------------------------
1197
1197
1198 $ cat << EOF >> $HGRCPATH
1198 $ cat << EOF >> $HGRCPATH
1199 > [format]
1199 > [format]
1200 > maxchainlen = 1
1200 > maxchainlen = 1
1201 > EOF
1201 > EOF
1202
1202
1203 $ hg init localconfig
1203 $ hg init localconfig
1204 $ cd localconfig
1204 $ cd localconfig
1205 $ cat << EOF > file
1205 $ cat << EOF > file
1206 > some content
1206 > some content
1207 > with some length
1207 > with some length
1208 > to make sure we get a delta
1208 > to make sure we get a delta
1209 > after changes
1209 > after changes
1210 > very long
1210 > very long
1211 > very long
1211 > very long
1212 > very long
1212 > very long
1213 > very long
1213 > very long
1214 > very long
1214 > very long
1215 > very long
1215 > very long
1216 > very long
1216 > very long
1217 > very long
1217 > very long
1218 > very long
1218 > very long
1219 > very long
1219 > very long
1220 > very long
1220 > very long
1221 > EOF
1221 > EOF
1222 $ hg -q commit -A -m A
1222 $ hg -q commit -A -m A
1223 $ echo "new line" >> file
1223 $ echo "new line" >> file
1224 $ hg -q commit -m B
1224 $ hg -q commit -m B
1225 $ echo "new line" >> file
1225 $ echo "new line" >> file
1226 $ hg -q commit -m C
1226 $ hg -q commit -m C
1227
1227
1228 $ cat << EOF >> .hg/hgrc
1228 $ cat << EOF >> .hg/hgrc
1229 > [format]
1229 > [format]
1230 > maxchainlen = 9001
1230 > maxchainlen = 9001
1231 > EOF
1231 > EOF
1232 $ hg config format
1232 $ hg config format
1233 format.maxchainlen=9001
1233 format.maxchainlen=9001
1234 $ hg debugdeltachain file
1234 $ hg debugdeltachain file
1235 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks
1235 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks
1236 0 1 1 -1 base 77 182 77 0.42308 77 0 0.00000 77 77 1.00000 1
1236 0 1 1 -1 base 77 182 77 0.42308 77 0 0.00000 77 77 1.00000 1
1237 1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000 98 98 1.00000 1
1237 1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000 98 98 1.00000 1
1238 2 1 2 0 other 30 200 107 0.53500 128 21 0.19626 128 128 0.83594 1
1238 2 1 2 0 other 30 200 107 0.53500 128 21 0.19626 128 128 0.83594 1
1239
1239
1240 $ hg debugupgraderepo --run --optimize redeltaall
1240 $ hg debugupgraderepo --run --optimize redeltaall
1241 upgrade will perform the following actions:
1241 upgrade will perform the following actions:
1242
1242
1243 requirements
1243 requirements
1244 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
1244 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
1245
1245
1246 sidedata
1246 sidedata
1247 Allows storage of extra data alongside a revision.
1247 Allows storage of extra data alongside a revision.
1248
1248
1249 copies-sdc
1249 copies-sdc
1250 Allows to use more efficient algorithm to deal with copy tracing.
1250 Allows to use more efficient algorithm to deal with copy tracing.
1251
1251
1252 re-delta-all
1252 re-delta-all
1253 deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time
1253 deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time
1254
1254
1255 beginning upgrade...
1255 beginning upgrade...
1256 repository locked and read-only
1256 repository locked and read-only
1257 creating temporary repository to stage migrated data: $TESTTMP/localconfig/.hg/upgrade.* (glob)
1257 creating temporary repository to stage migrated data: $TESTTMP/localconfig/.hg/upgrade.* (glob)
1258 (it is safe to interrupt this process any time before data migration completes)
1258 (it is safe to interrupt this process any time before data migration completes)
1259 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
1259 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
1260 migrating 1019 bytes in store; 882 bytes tracked data
1260 migrating 1019 bytes in store; 882 bytes tracked data
1261 migrating 1 filelogs containing 3 revisions (320 bytes in store; 573 bytes tracked data)
1261 migrating 1 filelogs containing 3 revisions (320 bytes in store; 573 bytes tracked data)
1262 finished migrating 3 filelog revisions across 1 filelogs; change in size: -9 bytes
1262 finished migrating 3 filelog revisions across 1 filelogs; change in size: -9 bytes
1263 migrating 1 manifests containing 3 revisions (333 bytes in store; 138 bytes tracked data)
1263 migrating 1 manifests containing 3 revisions (333 bytes in store; 138 bytes tracked data)
1264 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
1264 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
1265 migrating changelog containing 3 revisions (366 bytes in store; 171 bytes tracked data)
1265 migrating changelog containing 3 revisions (366 bytes in store; 171 bytes tracked data)
1266 finished migrating 3 changelog revisions; change in size: 0 bytes
1266 finished migrating 3 changelog revisions; change in size: 0 bytes
1267 finished migrating 9 total revisions; total change in store size: -9 bytes
1267 finished migrating 9 total revisions; total change in store size: -9 bytes
1268 copying phaseroots
1268 copying phaseroots
1269 data fully migrated to temporary repository
1269 data fully migrated to temporary repository
1270 marking source repository as being upgraded; clients will be unable to read from repository
1270 marking source repository as being upgraded; clients will be unable to read from repository
1271 starting in-place swap of repository data
1271 starting in-place swap of repository data
1272 replaced files will be backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob)
1272 replaced files will be backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob)
1273 replacing store...
1273 replacing store...
1274 store replacement complete; repository was inconsistent for *s (glob)
1274 store replacement complete; repository was inconsistent for *s (glob)
1275 finalizing requirements file and making repository readable again
1275 finalizing requirements file and making repository readable again
1276 removing temporary repository $TESTTMP/localconfig/.hg/upgrade.* (glob)
1276 removing temporary repository $TESTTMP/localconfig/.hg/upgrade.* (glob)
1277 copy of old repository backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob)
1277 copy of old repository backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob)
1278 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1278 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1279 $ hg debugdeltachain file
1279 $ hg debugdeltachain file
1280 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks
1280 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks
1281 0 1 1 -1 base 77 182 77 0.42308 77 0 0.00000 77 77 1.00000 1
1281 0 1 1 -1 base 77 182 77 0.42308 77 0 0.00000 77 77 1.00000 1
1282 1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000 98 98 1.00000 1
1282 1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000 98 98 1.00000 1
1283 2 1 3 1 p1 21 200 119 0.59500 119 0 0.00000 119 119 1.00000 1
1283 2 1 3 1 p1 21 200 119 0.59500 119 0 0.00000 119 119 1.00000 1
1284 $ cd ..
1284 $ cd ..
1285
1285
1286 $ cat << EOF >> $HGRCPATH
1286 $ cat << EOF >> $HGRCPATH
1287 > [format]
1287 > [format]
1288 > maxchainlen = 9001
1288 > maxchainlen = 9001
1289 > EOF
1289 > EOF
1290
1290
1291 Check upgrading a sparse-revlog repository
1291 Check upgrading a sparse-revlog repository
1292 ---------------------------------------
1292 ---------------------------------------
1293
1293
1294 $ hg init sparserevlogrepo --config format.sparse-revlog=no
1294 $ hg init sparserevlogrepo --config format.sparse-revlog=no
1295 $ cd sparserevlogrepo
1295 $ cd sparserevlogrepo
1296 $ touch foo
1296 $ touch foo
1297 $ hg add foo
1297 $ hg add foo
1298 $ hg -q commit -m "foo"
1298 $ hg -q commit -m "foo"
1299 $ cat .hg/requires
1299 $ cat .hg/requires
1300 dotencode
1300 dotencode
1301 fncache
1301 fncache
1302 generaldelta
1302 generaldelta
1303 revlogv1
1303 revlogv1
1304 store
1304 store
1305
1305
1306 Check that we can add the sparse-revlog format requirement
1306 Check that we can add the sparse-revlog format requirement
1307 $ hg --config format.sparse-revlog=yes debugupgraderepo --run >/dev/null
1307 $ hg --config format.sparse-revlog=yes debugupgraderepo --run >/dev/null
1308 copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
1308 copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
1309 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1309 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1310 $ cat .hg/requires
1310 $ cat .hg/requires
1311 dotencode
1311 dotencode
1312 fncache
1312 fncache
1313 generaldelta
1313 generaldelta
1314 revlogv1
1314 revlogv1
1315 sparserevlog
1315 sparserevlog
1316 store
1316 store
1317
1317
1318 Check that we can remove the sparse-revlog format requirement
1318 Check that we can remove the sparse-revlog format requirement
1319 $ hg --config format.sparse-revlog=no debugupgraderepo --run >/dev/null
1319 $ hg --config format.sparse-revlog=no debugupgraderepo --run >/dev/null
1320 copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
1320 copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
1321 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1321 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
1322 $ cat .hg/requires
1322 $ cat .hg/requires
1323 dotencode
1323 dotencode
1324 fncache
1324 fncache
1325 generaldelta
1325 generaldelta
1326 revlogv1
1326 revlogv1
1327 store
1327 store
1328
1328
1329 #if zstd
1329 #if zstd
1330
1330
1331 Check upgrading to a zstd revlog
1331 Check upgrading to a zstd revlog
1332 --------------------------------
1332 --------------------------------
1333
1333
1334 upgrade
1334 upgrade
1335
1335
1336 $ hg --config format.revlog-compression=zstd debugupgraderepo --run --no-backup >/dev/null
1336 $ hg --config format.revlog-compression=zstd debugupgraderepo --run --no-backup >/dev/null
1337 $ hg debugformat -v
1337 $ hg debugformat -v
1338 format-variant repo config default
1338 format-variant repo config default
1339 fncache: yes yes yes
1339 fncache: yes yes yes
1340 dotencode: yes yes yes
1340 dotencode: yes yes yes
1341 generaldelta: yes yes yes
1341 generaldelta: yes yes yes
1342 sparserevlog: yes yes yes
1342 sparserevlog: yes yes yes
1343 sidedata: no no no
1343 sidedata: no no no
1344 copies-sdc: no no no
1344 copies-sdc: no no no
1345 plain-cl-delta: yes yes yes
1345 plain-cl-delta: yes yes yes
1346 compression: zstd zlib zlib
1346 compression: zstd zlib zlib
1347 compression-level: default default default
1347 compression-level: default default default
1348 $ cat .hg/requires
1348 $ cat .hg/requires
1349 dotencode
1349 dotencode
1350 fncache
1350 fncache
1351 generaldelta
1351 generaldelta
1352 revlog-compression-zstd
1352 revlog-compression-zstd
1353 revlogv1
1353 revlogv1
1354 sparserevlog
1354 sparserevlog
1355 store
1355 store
1356
1356
1357 downgrade
1357 downgrade
1358
1358
1359 $ hg debugupgraderepo --run --no-backup > /dev/null
1359 $ hg debugupgraderepo --run --no-backup > /dev/null
1360 $ hg debugformat -v
1360 $ hg debugformat -v
1361 format-variant repo config default
1361 format-variant repo config default
1362 fncache: yes yes yes
1362 fncache: yes yes yes
1363 dotencode: yes yes yes
1363 dotencode: yes yes yes
1364 generaldelta: yes yes yes
1364 generaldelta: yes yes yes
1365 sparserevlog: yes yes yes
1365 sparserevlog: yes yes yes
1366 sidedata: no no no
1366 sidedata: no no no
1367 copies-sdc: no no no
1367 copies-sdc: no no no
1368 plain-cl-delta: yes yes yes
1368 plain-cl-delta: yes yes yes
1369 compression: zlib zlib zlib
1369 compression: zlib zlib zlib
1370 compression-level: default default default
1370 compression-level: default default default
1371 $ cat .hg/requires
1371 $ cat .hg/requires
1372 dotencode
1372 dotencode
1373 fncache
1373 fncache
1374 generaldelta
1374 generaldelta
1375 revlogv1
1375 revlogv1
1376 sparserevlog
1376 sparserevlog
1377 store
1377 store
1378
1378
1379 upgrade from hgrc
1379 upgrade from hgrc
1380
1380
1381 $ cat >> .hg/hgrc << EOF
1381 $ cat >> .hg/hgrc << EOF
1382 > [format]
1382 > [format]
1383 > revlog-compression=zstd
1383 > revlog-compression=zstd
1384 > EOF
1384 > EOF
1385 $ hg debugupgraderepo --run --no-backup > /dev/null
1385 $ hg debugupgraderepo --run --no-backup > /dev/null
1386 $ hg debugformat -v
1386 $ hg debugformat -v
1387 format-variant repo config default
1387 format-variant repo config default
1388 fncache: yes yes yes
1388 fncache: yes yes yes
1389 dotencode: yes yes yes
1389 dotencode: yes yes yes
1390 generaldelta: yes yes yes
1390 generaldelta: yes yes yes
1391 sparserevlog: yes yes yes
1391 sparserevlog: yes yes yes
1392 sidedata: no no no
1392 sidedata: no no no
1393 copies-sdc: no no no
1393 copies-sdc: no no no
1394 plain-cl-delta: yes yes yes
1394 plain-cl-delta: yes yes yes
1395 compression: zstd zstd zlib
1395 compression: zstd zstd zlib
1396 compression-level: default default default
1396 compression-level: default default default
1397 $ cat .hg/requires
1397 $ cat .hg/requires
1398 dotencode
1398 dotencode
1399 fncache
1399 fncache
1400 generaldelta
1400 generaldelta
1401 revlog-compression-zstd
1401 revlog-compression-zstd
1402 revlogv1
1402 revlogv1
1403 sparserevlog
1403 sparserevlog
1404 store
1404 store
1405
1405
1406 #endif
1406 #endif
1407
1407
1408 Check upgrading to a side-data revlog
1408 Check upgrading to a side-data revlog
1409 -------------------------------------
1409 -------------------------------------
1410
1410
1411 upgrade
1411 upgrade
1412
1412
1413 $ hg --config format.exp-use-side-data=yes debugupgraderepo --run --no-backup --config "extensions.sidedata=$TESTDIR/testlib/ext-sidedata.py" >/dev/null
1413 $ hg --config format.exp-use-side-data=yes debugupgraderepo --run --no-backup --config "extensions.sidedata=$TESTDIR/testlib/ext-sidedata.py" >/dev/null
1414 $ hg debugformat -v
1414 $ hg debugformat -v
1415 format-variant repo config default
1415 format-variant repo config default
1416 fncache: yes yes yes
1416 fncache: yes yes yes
1417 dotencode: yes yes yes
1417 dotencode: yes yes yes
1418 generaldelta: yes yes yes
1418 generaldelta: yes yes yes
1419 sparserevlog: yes yes yes
1419 sparserevlog: yes yes yes
1420 sidedata: yes no no
1420 sidedata: yes no no
1421 copies-sdc: no no no
1421 copies-sdc: no no no
1422 plain-cl-delta: yes yes yes
1422 plain-cl-delta: yes yes yes
1423 compression: zstd zstd zlib (zstd !)
1423 compression: zstd zstd zlib (zstd !)
1424 compression: zlib zlib zlib (no-zstd !)
1424 compression: zlib zlib zlib (no-zstd !)
1425 compression-level: default default default
1425 compression-level: default default default
1426 $ cat .hg/requires
1426 $ cat .hg/requires
1427 dotencode
1427 dotencode
1428 exp-sidedata-flag
1428 exp-sidedata-flag
1429 fncache
1429 fncache
1430 generaldelta
1430 generaldelta
1431 revlog-compression-zstd (zstd !)
1431 revlog-compression-zstd (zstd !)
1432 revlogv1
1432 revlogv1
1433 sparserevlog
1433 sparserevlog
1434 store
1434 store
1435 $ hg debugsidedata -c 0
1435 $ hg debugsidedata -c 0
1436 2 sidedata entries
1436 2 sidedata entries
1437 entry-0001 size 4
1437 entry-0001 size 4
1438 entry-0002 size 32
1438 entry-0002 size 32
1439
1439
1440 downgrade
1440 downgrade
1441
1441
1442 $ hg debugupgraderepo --config format.exp-use-side-data=no --run --no-backup > /dev/null
1442 $ hg debugupgraderepo --config format.exp-use-side-data=no --run --no-backup > /dev/null
1443 $ hg debugformat -v
1443 $ hg debugformat -v
1444 format-variant repo config default
1444 format-variant repo config default
1445 fncache: yes yes yes
1445 fncache: yes yes yes
1446 dotencode: yes yes yes
1446 dotencode: yes yes yes
1447 generaldelta: yes yes yes
1447 generaldelta: yes yes yes
1448 sparserevlog: yes yes yes
1448 sparserevlog: yes yes yes
1449 sidedata: no no no
1449 sidedata: no no no
1450 copies-sdc: no no no
1450 copies-sdc: no no no
1451 plain-cl-delta: yes yes yes
1451 plain-cl-delta: yes yes yes
1452 compression: zstd zstd zlib (zstd !)
1452 compression: zstd zstd zlib (zstd !)
1453 compression: zlib zlib zlib (no-zstd !)
1453 compression: zlib zlib zlib (no-zstd !)
1454 compression-level: default default default
1454 compression-level: default default default
1455 $ cat .hg/requires
1455 $ cat .hg/requires
1456 dotencode
1456 dotencode
1457 fncache
1457 fncache
1458 generaldelta
1458 generaldelta
1459 revlog-compression-zstd (zstd !)
1459 revlog-compression-zstd (zstd !)
1460 revlogv1
1460 revlogv1
1461 sparserevlog
1461 sparserevlog
1462 store
1462 store
1463 $ hg debugsidedata -c 0
1463 $ hg debugsidedata -c 0
1464
1464
1465 upgrade from hgrc
1465 upgrade from hgrc
1466
1466
1467 $ cat >> .hg/hgrc << EOF
1467 $ cat >> .hg/hgrc << EOF
1468 > [format]
1468 > [format]
1469 > exp-use-side-data=yes
1469 > exp-use-side-data=yes
1470 > EOF
1470 > EOF
1471 $ hg debugupgraderepo --run --no-backup > /dev/null
1471 $ hg debugupgraderepo --run --no-backup > /dev/null
1472 $ hg debugformat -v
1472 $ hg debugformat -v
1473 format-variant repo config default
1473 format-variant repo config default
1474 fncache: yes yes yes
1474 fncache: yes yes yes
1475 dotencode: yes yes yes
1475 dotencode: yes yes yes
1476 generaldelta: yes yes yes
1476 generaldelta: yes yes yes
1477 sparserevlog: yes yes yes
1477 sparserevlog: yes yes yes
1478 sidedata: yes yes no
1478 sidedata: yes yes no
1479 copies-sdc: no no no
1479 copies-sdc: no no no
1480 plain-cl-delta: yes yes yes
1480 plain-cl-delta: yes yes yes
1481 compression: zstd zstd zlib (zstd !)
1481 compression: zstd zstd zlib (zstd !)
1482 compression: zlib zlib zlib (no-zstd !)
1482 compression: zlib zlib zlib (no-zstd !)
1483 compression-level: default default default
1483 compression-level: default default default
1484 $ cat .hg/requires
1484 $ cat .hg/requires
1485 dotencode
1485 dotencode
1486 exp-sidedata-flag
1486 exp-sidedata-flag
1487 fncache
1487 fncache
1488 generaldelta
1488 generaldelta
1489 revlog-compression-zstd (zstd !)
1489 revlog-compression-zstd (zstd !)
1490 revlogv1
1490 revlogv1
1491 sparserevlog
1491 sparserevlog
1492 store
1492 store
1493 $ hg debugsidedata -c 0
1493 $ hg debugsidedata -c 0
General Comments 0
You need to be logged in to leave comments. Login now