##// END OF EJS Templates
test: fix config typo in test-upgrade-repo.t...
Boris Feld -
r40919:597fe8d8 default
parent child Browse files
Show More
@@ -1,757 +1,757 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: no
59 sparserevlog: no
60 plain-cl-delta: yes
60 plain-cl-delta: yes
61 compression: zlib
61 compression: zlib
62 $ hg debugformat --verbose
62 $ hg debugformat --verbose
63 format-variant repo config default
63 format-variant repo config default
64 fncache: yes yes yes
64 fncache: yes yes yes
65 dotencode: yes yes yes
65 dotencode: yes yes yes
66 generaldelta: yes yes yes
66 generaldelta: yes yes yes
67 sparserevlog: no no no
67 sparserevlog: no no no
68 plain-cl-delta: yes yes yes
68 plain-cl-delta: yes yes yes
69 compression: zlib zlib zlib
69 compression: zlib zlib zlib
70 $ hg debugformat --verbose --config format.usegfncache=no
70 $ hg debugformat --verbose --config format.usefncache=no
71 format-variant repo config default
71 format-variant repo config default
72 fncache: yes yes yes
72 fncache: yes no yes
73 dotencode: yes yes yes
73 dotencode: yes no yes
74 generaldelta: yes yes yes
74 generaldelta: yes yes yes
75 sparserevlog: no no no
75 sparserevlog: no no no
76 plain-cl-delta: yes yes yes
76 plain-cl-delta: yes yes yes
77 compression: zlib zlib zlib
77 compression: zlib zlib zlib
78 $ hg debugformat --verbose --config format.usegfncache=no --color=debug
78 $ hg debugformat --verbose --config format.usefncache=no --color=debug
79 format-variant repo config default
79 format-variant repo config default
80 [formatvariant.name.uptodate|fncache: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
80 [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes]
81 [formatvariant.name.uptodate|dotencode: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
81 [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes]
82 [formatvariant.name.uptodate|generaldelta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
82 [formatvariant.name.uptodate|generaldelta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
83 [formatvariant.name.uptodate|sparserevlog: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
83 [formatvariant.name.uptodate|sparserevlog: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
84 [formatvariant.name.uptodate|plain-cl-delta:][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
84 [formatvariant.name.uptodate|plain-cl-delta:][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
85 [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib]
85 [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib]
86 $ hg debugformat -Tjson
86 $ hg debugformat -Tjson
87 [
87 [
88 {
88 {
89 "config": true,
89 "config": true,
90 "default": true,
90 "default": true,
91 "name": "fncache",
91 "name": "fncache",
92 "repo": true
92 "repo": true
93 },
93 },
94 {
94 {
95 "config": true,
95 "config": true,
96 "default": true,
96 "default": true,
97 "name": "dotencode",
97 "name": "dotencode",
98 "repo": true
98 "repo": true
99 },
99 },
100 {
100 {
101 "config": true,
101 "config": true,
102 "default": true,
102 "default": true,
103 "name": "generaldelta",
103 "name": "generaldelta",
104 "repo": true
104 "repo": true
105 },
105 },
106 {
106 {
107 "config": false,
107 "config": false,
108 "default": false,
108 "default": false,
109 "name": "sparserevlog",
109 "name": "sparserevlog",
110 "repo": false
110 "repo": false
111 },
111 },
112 {
112 {
113 "config": true,
113 "config": true,
114 "default": true,
114 "default": true,
115 "name": "plain-cl-delta",
115 "name": "plain-cl-delta",
116 "repo": true
116 "repo": true
117 },
117 },
118 {
118 {
119 "config": "zlib",
119 "config": "zlib",
120 "default": "zlib",
120 "default": "zlib",
121 "name": "compression",
121 "name": "compression",
122 "repo": "zlib"
122 "repo": "zlib"
123 }
123 }
124 ]
124 ]
125 $ hg debugupgraderepo
125 $ hg debugupgraderepo
126 (no feature deficiencies found in existing repository)
126 (no feature deficiencies found in existing repository)
127 performing an upgrade with "--run" will make the following changes:
127 performing an upgrade with "--run" will make the following changes:
128
128
129 requirements
129 requirements
130 preserved: dotencode, fncache, generaldelta, revlogv1, store
130 preserved: dotencode, fncache, generaldelta, revlogv1, store
131
131
132 additional optimizations are available by specifying "--optimize <name>":
132 additional optimizations are available by specifying "--optimize <name>":
133
133
134 redeltaparent
134 redeltaparent
135 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
135 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
136
136
137 redeltamultibase
137 redeltamultibase
138 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
138 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
139
139
140 redeltaall
140 redeltaall
141 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
141 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
142
142
143 redeltafulladd
143 redeltafulladd
144 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 "redeltaall" but even slower since more logic is involved.
144 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 "redeltaall" but even slower since more logic is involved.
145
145
146
146
147 --optimize can be used to add optimizations
147 --optimize can be used to add optimizations
148
148
149 $ hg debugupgrade --optimize redeltaparent
149 $ hg debugupgrade --optimize redeltaparent
150 (no feature deficiencies found in existing repository)
150 (no feature deficiencies found in existing repository)
151 performing an upgrade with "--run" will make the following changes:
151 performing an upgrade with "--run" will make the following changes:
152
152
153 requirements
153 requirements
154 preserved: dotencode, fncache, generaldelta, revlogv1, store
154 preserved: dotencode, fncache, generaldelta, revlogv1, store
155
155
156 redeltaparent
156 redeltaparent
157 deltas within internal storage will choose a new base revision if needed
157 deltas within internal storage will choose a new base revision if needed
158
158
159 additional optimizations are available by specifying "--optimize <name>":
159 additional optimizations are available by specifying "--optimize <name>":
160
160
161 redeltamultibase
161 redeltamultibase
162 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
162 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
163
163
164 redeltaall
164 redeltaall
165 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
165 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
166
166
167 redeltafulladd
167 redeltafulladd
168 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 "redeltaall" but even slower since more logic is involved.
168 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 "redeltaall" but even slower since more logic is involved.
169
169
170
170
171 Various sub-optimal detections work
171 Various sub-optimal detections work
172
172
173 $ cat > .hg/requires << EOF
173 $ cat > .hg/requires << EOF
174 > revlogv1
174 > revlogv1
175 > store
175 > store
176 > EOF
176 > EOF
177
177
178 $ hg debugformat
178 $ hg debugformat
179 format-variant repo
179 format-variant repo
180 fncache: no
180 fncache: no
181 dotencode: no
181 dotencode: no
182 generaldelta: no
182 generaldelta: no
183 sparserevlog: no
183 sparserevlog: no
184 plain-cl-delta: yes
184 plain-cl-delta: yes
185 compression: zlib
185 compression: zlib
186 $ hg debugformat --verbose
186 $ hg debugformat --verbose
187 format-variant repo config default
187 format-variant repo config default
188 fncache: no yes yes
188 fncache: no yes yes
189 dotencode: no yes yes
189 dotencode: no yes yes
190 generaldelta: no yes yes
190 generaldelta: no yes yes
191 sparserevlog: no no no
191 sparserevlog: no no no
192 plain-cl-delta: yes yes yes
192 plain-cl-delta: yes yes yes
193 compression: zlib zlib zlib
193 compression: zlib zlib zlib
194 $ hg debugformat --verbose --config format.usegeneraldelta=no
194 $ hg debugformat --verbose --config format.usegeneraldelta=no
195 format-variant repo config default
195 format-variant repo config default
196 fncache: no yes yes
196 fncache: no yes yes
197 dotencode: no yes yes
197 dotencode: no yes yes
198 generaldelta: no no yes
198 generaldelta: no no yes
199 sparserevlog: no no no
199 sparserevlog: no no no
200 plain-cl-delta: yes yes yes
200 plain-cl-delta: yes yes yes
201 compression: zlib zlib zlib
201 compression: zlib zlib zlib
202 $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug
202 $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug
203 format-variant repo config default
203 format-variant repo config default
204 [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes]
204 [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes]
205 [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes]
205 [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes]
206 [formatvariant.name.mismatchdefault|generaldelta: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes]
206 [formatvariant.name.mismatchdefault|generaldelta: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes]
207 [formatvariant.name.uptodate|sparserevlog: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
207 [formatvariant.name.uptodate|sparserevlog: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no]
208 [formatvariant.name.uptodate|plain-cl-delta:][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
208 [formatvariant.name.uptodate|plain-cl-delta:][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
209 [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib]
209 [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib]
210 $ hg debugupgraderepo
210 $ hg debugupgraderepo
211 repository lacks features recommended by current config options:
211 repository lacks features recommended by current config options:
212
212
213 fncache
213 fncache
214 long and reserved filenames may not work correctly; repository performance is sub-optimal
214 long and reserved filenames may not work correctly; repository performance is sub-optimal
215
215
216 dotencode
216 dotencode
217 storage of filenames beginning with a period or space may not work correctly
217 storage of filenames beginning with a period or space may not work correctly
218
218
219 generaldelta
219 generaldelta
220 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
220 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
221
221
222
222
223 performing an upgrade with "--run" will make the following changes:
223 performing an upgrade with "--run" will make the following changes:
224
224
225 requirements
225 requirements
226 preserved: revlogv1, store
226 preserved: revlogv1, store
227 added: dotencode, fncache, generaldelta
227 added: dotencode, fncache, generaldelta
228
228
229 fncache
229 fncache
230 repository will be more resilient to storing certain paths and performance of certain operations should be improved
230 repository will be more resilient to storing certain paths and performance of certain operations should be improved
231
231
232 dotencode
232 dotencode
233 repository will be better able to store files beginning with a space or period
233 repository will be better able to store files beginning with a space or period
234
234
235 generaldelta
235 generaldelta
236 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
236 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
237
237
238 additional optimizations are available by specifying "--optimize <name>":
238 additional optimizations are available by specifying "--optimize <name>":
239
239
240 redeltaparent
240 redeltaparent
241 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
241 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
242
242
243 redeltamultibase
243 redeltamultibase
244 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
244 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
245
245
246 redeltaall
246 redeltaall
247 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
247 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
248
248
249 redeltafulladd
249 redeltafulladd
250 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 "redeltaall" but even slower since more logic is involved.
250 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 "redeltaall" but even slower since more logic is involved.
251
251
252
252
253 $ hg --config format.dotencode=false debugupgraderepo
253 $ hg --config format.dotencode=false debugupgraderepo
254 repository lacks features recommended by current config options:
254 repository lacks features recommended by current config options:
255
255
256 fncache
256 fncache
257 long and reserved filenames may not work correctly; repository performance is sub-optimal
257 long and reserved filenames may not work correctly; repository performance is sub-optimal
258
258
259 generaldelta
259 generaldelta
260 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
260 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
261
261
262 repository lacks features used by the default config options:
262 repository lacks features used by the default config options:
263
263
264 dotencode
264 dotencode
265 storage of filenames beginning with a period or space may not work correctly
265 storage of filenames beginning with a period or space may not work correctly
266
266
267
267
268 performing an upgrade with "--run" will make the following changes:
268 performing an upgrade with "--run" will make the following changes:
269
269
270 requirements
270 requirements
271 preserved: revlogv1, store
271 preserved: revlogv1, store
272 added: fncache, generaldelta
272 added: fncache, generaldelta
273
273
274 fncache
274 fncache
275 repository will be more resilient to storing certain paths and performance of certain operations should be improved
275 repository will be more resilient to storing certain paths and performance of certain operations should be improved
276
276
277 generaldelta
277 generaldelta
278 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
278 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
279
279
280 additional optimizations are available by specifying "--optimize <name>":
280 additional optimizations are available by specifying "--optimize <name>":
281
281
282 redeltaparent
282 redeltaparent
283 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
283 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
284
284
285 redeltamultibase
285 redeltamultibase
286 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
286 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
287
287
288 redeltaall
288 redeltaall
289 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
289 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
290
290
291 redeltafulladd
291 redeltafulladd
292 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 "redeltaall" but even slower since more logic is involved.
292 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 "redeltaall" but even slower since more logic is involved.
293
293
294
294
295 $ cd ..
295 $ cd ..
296
296
297 Upgrading a repository that is already modern essentially no-ops
297 Upgrading a repository that is already modern essentially no-ops
298
298
299 $ hg init modern
299 $ hg init modern
300 $ hg -R modern debugupgraderepo --run
300 $ hg -R modern debugupgraderepo --run
301 upgrade will perform the following actions:
301 upgrade will perform the following actions:
302
302
303 requirements
303 requirements
304 preserved: dotencode, fncache, generaldelta, revlogv1, store
304 preserved: dotencode, fncache, generaldelta, revlogv1, store
305
305
306 beginning upgrade...
306 beginning upgrade...
307 repository locked and read-only
307 repository locked and read-only
308 creating temporary repository to stage migrated data: $TESTTMP/modern/.hg/upgrade.* (glob)
308 creating temporary repository to stage migrated data: $TESTTMP/modern/.hg/upgrade.* (glob)
309 (it is safe to interrupt this process any time before data migration completes)
309 (it is safe to interrupt this process any time before data migration completes)
310 data fully migrated to temporary repository
310 data fully migrated to temporary repository
311 marking source repository as being upgraded; clients will be unable to read from repository
311 marking source repository as being upgraded; clients will be unable to read from repository
312 starting in-place swap of repository data
312 starting in-place swap of repository data
313 replaced files will be backed up at $TESTTMP/modern/.hg/upgradebackup.* (glob)
313 replaced files will be backed up at $TESTTMP/modern/.hg/upgradebackup.* (glob)
314 replacing store...
314 replacing store...
315 store replacement complete; repository was inconsistent for *s (glob)
315 store replacement complete; repository was inconsistent for *s (glob)
316 finalizing requirements file and making repository readable again
316 finalizing requirements file and making repository readable again
317 removing temporary repository $TESTTMP/modern/.hg/upgrade.* (glob)
317 removing temporary repository $TESTTMP/modern/.hg/upgrade.* (glob)
318 copy of old repository backed up at $TESTTMP/modern/.hg/upgradebackup.* (glob)
318 copy of old repository backed up at $TESTTMP/modern/.hg/upgradebackup.* (glob)
319 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
319 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
320
320
321 Upgrading a repository to generaldelta works
321 Upgrading a repository to generaldelta works
322
322
323 $ hg --config format.usegeneraldelta=false init upgradegd
323 $ hg --config format.usegeneraldelta=false init upgradegd
324 $ cd upgradegd
324 $ cd upgradegd
325 $ touch f0
325 $ touch f0
326 $ hg -q commit -A -m initial
326 $ hg -q commit -A -m initial
327 $ touch f1
327 $ touch f1
328 $ hg -q commit -A -m 'add f1'
328 $ hg -q commit -A -m 'add f1'
329 $ hg -q up -r 0
329 $ hg -q up -r 0
330 $ touch f2
330 $ touch f2
331 $ hg -q commit -A -m 'add f2'
331 $ hg -q commit -A -m 'add f2'
332
332
333 $ hg debugupgraderepo --run
333 $ hg debugupgraderepo --run
334 upgrade will perform the following actions:
334 upgrade will perform the following actions:
335
335
336 requirements
336 requirements
337 preserved: dotencode, fncache, revlogv1, store
337 preserved: dotencode, fncache, revlogv1, store
338 added: generaldelta
338 added: generaldelta
339
339
340 generaldelta
340 generaldelta
341 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
341 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
342
342
343 beginning upgrade...
343 beginning upgrade...
344 repository locked and read-only
344 repository locked and read-only
345 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
345 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
346 (it is safe to interrupt this process any time before data migration completes)
346 (it is safe to interrupt this process any time before data migration completes)
347 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
347 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
348 migrating 917 bytes in store; 401 bytes tracked data
348 migrating 917 bytes in store; 401 bytes tracked data
349 migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
349 migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
350 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
350 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
351 migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
351 migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
352 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
352 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
353 migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
353 migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
354 finished migrating 3 changelog revisions; change in size: 0 bytes
354 finished migrating 3 changelog revisions; change in size: 0 bytes
355 finished migrating 9 total revisions; total change in store size: 0 bytes
355 finished migrating 9 total revisions; total change in store size: 0 bytes
356 copying phaseroots
356 copying phaseroots
357 data fully migrated to temporary repository
357 data fully migrated to temporary repository
358 marking source repository as being upgraded; clients will be unable to read from repository
358 marking source repository as being upgraded; clients will be unable to read from repository
359 starting in-place swap of repository data
359 starting in-place swap of repository data
360 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
360 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
361 replacing store...
361 replacing store...
362 store replacement complete; repository was inconsistent for *s (glob)
362 store replacement complete; repository was inconsistent for *s (glob)
363 finalizing requirements file and making repository readable again
363 finalizing requirements file and making repository readable again
364 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
364 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
365 copy of old repository backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
365 copy of old repository backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
366 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
366 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
367
367
368 Original requirements backed up
368 Original requirements backed up
369
369
370 $ cat .hg/upgradebackup.*/requires
370 $ cat .hg/upgradebackup.*/requires
371 dotencode
371 dotencode
372 fncache
372 fncache
373 revlogv1
373 revlogv1
374 store
374 store
375
375
376 generaldelta added to original requirements files
376 generaldelta added to original requirements files
377
377
378 $ cat .hg/requires
378 $ cat .hg/requires
379 dotencode
379 dotencode
380 fncache
380 fncache
381 generaldelta
381 generaldelta
382 revlogv1
382 revlogv1
383 store
383 store
384
384
385 store directory has files we expect
385 store directory has files we expect
386
386
387 $ ls .hg/store
387 $ ls .hg/store
388 00changelog.i
388 00changelog.i
389 00manifest.i
389 00manifest.i
390 data
390 data
391 fncache
391 fncache
392 phaseroots
392 phaseroots
393 undo
393 undo
394 undo.backupfiles
394 undo.backupfiles
395 undo.phaseroots
395 undo.phaseroots
396
396
397 manifest should be generaldelta
397 manifest should be generaldelta
398
398
399 $ hg debugrevlog -m | grep flags
399 $ hg debugrevlog -m | grep flags
400 flags : inline, generaldelta
400 flags : inline, generaldelta
401
401
402 verify should be happy
402 verify should be happy
403
403
404 $ hg verify
404 $ hg verify
405 checking changesets
405 checking changesets
406 checking manifests
406 checking manifests
407 crosschecking files in changesets and manifests
407 crosschecking files in changesets and manifests
408 checking files
408 checking files
409 checked 3 changesets with 3 changes to 3 files
409 checked 3 changesets with 3 changes to 3 files
410
410
411 old store should be backed up
411 old store should be backed up
412
412
413 $ ls .hg/upgradebackup.*/store
413 $ ls .hg/upgradebackup.*/store
414 00changelog.i
414 00changelog.i
415 00manifest.i
415 00manifest.i
416 data
416 data
417 fncache
417 fncache
418 phaseroots
418 phaseroots
419 undo
419 undo
420 undo.backup.fncache
420 undo.backup.fncache
421 undo.backupfiles
421 undo.backupfiles
422 undo.phaseroots
422 undo.phaseroots
423
423
424 $ cd ..
424 $ cd ..
425
425
426 store files with special filenames aren't encoded during copy
426 store files with special filenames aren't encoded during copy
427
427
428 $ hg init store-filenames
428 $ hg init store-filenames
429 $ cd store-filenames
429 $ cd store-filenames
430 $ touch foo
430 $ touch foo
431 $ hg -q commit -A -m initial
431 $ hg -q commit -A -m initial
432 $ touch .hg/store/.XX_special_filename
432 $ touch .hg/store/.XX_special_filename
433
433
434 $ hg debugupgraderepo --run
434 $ hg debugupgraderepo --run
435 upgrade will perform the following actions:
435 upgrade will perform the following actions:
436
436
437 requirements
437 requirements
438 preserved: dotencode, fncache, generaldelta, revlogv1, store
438 preserved: dotencode, fncache, generaldelta, revlogv1, store
439
439
440 beginning upgrade...
440 beginning upgrade...
441 repository locked and read-only
441 repository locked and read-only
442 creating temporary repository to stage migrated data: $TESTTMP/store-filenames/.hg/upgrade.* (glob)
442 creating temporary repository to stage migrated data: $TESTTMP/store-filenames/.hg/upgrade.* (glob)
443 (it is safe to interrupt this process any time before data migration completes)
443 (it is safe to interrupt this process any time before data migration completes)
444 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
444 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
445 migrating 301 bytes in store; 107 bytes tracked data
445 migrating 301 bytes in store; 107 bytes tracked data
446 migrating 1 filelogs containing 1 revisions (64 bytes in store; 0 bytes tracked data)
446 migrating 1 filelogs containing 1 revisions (64 bytes in store; 0 bytes tracked data)
447 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
447 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
448 migrating 1 manifests containing 1 revisions (110 bytes in store; 45 bytes tracked data)
448 migrating 1 manifests containing 1 revisions (110 bytes in store; 45 bytes tracked data)
449 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
449 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
450 migrating changelog containing 1 revisions (127 bytes in store; 62 bytes tracked data)
450 migrating changelog containing 1 revisions (127 bytes in store; 62 bytes tracked data)
451 finished migrating 1 changelog revisions; change in size: 0 bytes
451 finished migrating 1 changelog revisions; change in size: 0 bytes
452 finished migrating 3 total revisions; total change in store size: 0 bytes
452 finished migrating 3 total revisions; total change in store size: 0 bytes
453 copying .XX_special_filename
453 copying .XX_special_filename
454 copying phaseroots
454 copying phaseroots
455 data fully migrated to temporary repository
455 data fully migrated to temporary repository
456 marking source repository as being upgraded; clients will be unable to read from repository
456 marking source repository as being upgraded; clients will be unable to read from repository
457 starting in-place swap of repository data
457 starting in-place swap of repository data
458 replaced files will be backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
458 replaced files will be backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
459 replacing store...
459 replacing store...
460 store replacement complete; repository was inconsistent for *s (glob)
460 store replacement complete; repository was inconsistent for *s (glob)
461 finalizing requirements file and making repository readable again
461 finalizing requirements file and making repository readable again
462 removing temporary repository $TESTTMP/store-filenames/.hg/upgrade.* (glob)
462 removing temporary repository $TESTTMP/store-filenames/.hg/upgrade.* (glob)
463 copy of old repository backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
463 copy of old repository backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
464 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
464 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
465 $ hg debugupgraderepo --run --optimize redeltafulladd
465 $ hg debugupgraderepo --run --optimize redeltafulladd
466 upgrade will perform the following actions:
466 upgrade will perform the following actions:
467
467
468 requirements
468 requirements
469 preserved: dotencode, fncache, generaldelta, revlogv1, store
469 preserved: dotencode, fncache, generaldelta, revlogv1, store
470
470
471 redeltafulladd
471 redeltafulladd
472 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
472 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
473
473
474 beginning upgrade...
474 beginning upgrade...
475 repository locked and read-only
475 repository locked and read-only
476 creating temporary repository to stage migrated data: $TESTTMP/store-filenames/.hg/upgrade.* (glob)
476 creating temporary repository to stage migrated data: $TESTTMP/store-filenames/.hg/upgrade.* (glob)
477 (it is safe to interrupt this process any time before data migration completes)
477 (it is safe to interrupt this process any time before data migration completes)
478 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
478 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
479 migrating 301 bytes in store; 107 bytes tracked data
479 migrating 301 bytes in store; 107 bytes tracked data
480 migrating 1 filelogs containing 1 revisions (64 bytes in store; 0 bytes tracked data)
480 migrating 1 filelogs containing 1 revisions (64 bytes in store; 0 bytes tracked data)
481 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
481 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
482 migrating 1 manifests containing 1 revisions (110 bytes in store; 45 bytes tracked data)
482 migrating 1 manifests containing 1 revisions (110 bytes in store; 45 bytes tracked data)
483 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
483 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
484 migrating changelog containing 1 revisions (127 bytes in store; 62 bytes tracked data)
484 migrating changelog containing 1 revisions (127 bytes in store; 62 bytes tracked data)
485 finished migrating 1 changelog revisions; change in size: 0 bytes
485 finished migrating 1 changelog revisions; change in size: 0 bytes
486 finished migrating 3 total revisions; total change in store size: 0 bytes
486 finished migrating 3 total revisions; total change in store size: 0 bytes
487 copying .XX_special_filename
487 copying .XX_special_filename
488 copying phaseroots
488 copying phaseroots
489 data fully migrated to temporary repository
489 data fully migrated to temporary repository
490 marking source repository as being upgraded; clients will be unable to read from repository
490 marking source repository as being upgraded; clients will be unable to read from repository
491 starting in-place swap of repository data
491 starting in-place swap of repository data
492 replaced files will be backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
492 replaced files will be backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
493 replacing store...
493 replacing store...
494 store replacement complete; repository was inconsistent for *s (glob)
494 store replacement complete; repository was inconsistent for *s (glob)
495 finalizing requirements file and making repository readable again
495 finalizing requirements file and making repository readable again
496 removing temporary repository $TESTTMP/store-filenames/.hg/upgrade.* (glob)
496 removing temporary repository $TESTTMP/store-filenames/.hg/upgrade.* (glob)
497 copy of old repository backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
497 copy of old repository backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob)
498 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
498 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
499
499
500 fncache is valid after upgrade
500 fncache is valid after upgrade
501
501
502 $ hg debugrebuildfncache
502 $ hg debugrebuildfncache
503 fncache already up to date
503 fncache already up to date
504
504
505 $ cd ..
505 $ cd ..
506
506
507 Check upgrading a large file repository
507 Check upgrading a large file repository
508 ---------------------------------------
508 ---------------------------------------
509
509
510 $ hg init largefilesrepo
510 $ hg init largefilesrepo
511 $ cat << EOF >> largefilesrepo/.hg/hgrc
511 $ cat << EOF >> largefilesrepo/.hg/hgrc
512 > [extensions]
512 > [extensions]
513 > largefiles =
513 > largefiles =
514 > EOF
514 > EOF
515
515
516 $ cd largefilesrepo
516 $ cd largefilesrepo
517 $ touch foo
517 $ touch foo
518 $ hg add --large foo
518 $ hg add --large foo
519 $ hg -q commit -m initial
519 $ hg -q commit -m initial
520 $ cat .hg/requires
520 $ cat .hg/requires
521 dotencode
521 dotencode
522 fncache
522 fncache
523 generaldelta
523 generaldelta
524 largefiles
524 largefiles
525 revlogv1
525 revlogv1
526 store
526 store
527
527
528 $ hg debugupgraderepo --run
528 $ hg debugupgraderepo --run
529 upgrade will perform the following actions:
529 upgrade will perform the following actions:
530
530
531 requirements
531 requirements
532 preserved: dotencode, fncache, generaldelta, largefiles, revlogv1, store
532 preserved: dotencode, fncache, generaldelta, largefiles, revlogv1, store
533
533
534 beginning upgrade...
534 beginning upgrade...
535 repository locked and read-only
535 repository locked and read-only
536 creating temporary repository to stage migrated data: $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
536 creating temporary repository to stage migrated data: $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
537 (it is safe to interrupt this process any time before data migration completes)
537 (it is safe to interrupt this process any time before data migration completes)
538 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
538 migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog)
539 migrating 355 bytes in store; 160 bytes tracked data
539 migrating 355 bytes in store; 160 bytes tracked data
540 migrating 1 filelogs containing 1 revisions (106 bytes in store; 41 bytes tracked data)
540 migrating 1 filelogs containing 1 revisions (106 bytes in store; 41 bytes tracked data)
541 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
541 finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes
542 migrating 1 manifests containing 1 revisions (116 bytes in store; 51 bytes tracked data)
542 migrating 1 manifests containing 1 revisions (116 bytes in store; 51 bytes tracked data)
543 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
543 finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes
544 migrating changelog containing 1 revisions (133 bytes in store; 68 bytes tracked data)
544 migrating changelog containing 1 revisions (133 bytes in store; 68 bytes tracked data)
545 finished migrating 1 changelog revisions; change in size: 0 bytes
545 finished migrating 1 changelog revisions; change in size: 0 bytes
546 finished migrating 3 total revisions; total change in store size: 0 bytes
546 finished migrating 3 total revisions; total change in store size: 0 bytes
547 copying phaseroots
547 copying phaseroots
548 data fully migrated to temporary repository
548 data fully migrated to temporary repository
549 marking source repository as being upgraded; clients will be unable to read from repository
549 marking source repository as being upgraded; clients will be unable to read from repository
550 starting in-place swap of repository data
550 starting in-place swap of repository data
551 replaced files will be backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
551 replaced files will be backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
552 replacing store...
552 replacing store...
553 store replacement complete; repository was inconsistent for *s (glob)
553 store replacement complete; repository was inconsistent for *s (glob)
554 finalizing requirements file and making repository readable again
554 finalizing requirements file and making repository readable again
555 removing temporary repository $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
555 removing temporary repository $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
556 copy of old repository backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
556 copy of old repository backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
557 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
557 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
558 $ cat .hg/requires
558 $ cat .hg/requires
559 dotencode
559 dotencode
560 fncache
560 fncache
561 generaldelta
561 generaldelta
562 largefiles
562 largefiles
563 revlogv1
563 revlogv1
564 store
564 store
565
565
566 $ cat << EOF >> .hg/hgrc
566 $ cat << EOF >> .hg/hgrc
567 > [extensions]
567 > [extensions]
568 > lfs =
568 > lfs =
569 > [lfs]
569 > [lfs]
570 > threshold = 10
570 > threshold = 10
571 > EOF
571 > EOF
572 $ echo '123456789012345' > lfs.bin
572 $ echo '123456789012345' > lfs.bin
573 $ hg ci -Am 'lfs.bin'
573 $ hg ci -Am 'lfs.bin'
574 adding lfs.bin
574 adding lfs.bin
575 $ grep lfs .hg/requires
575 $ grep lfs .hg/requires
576 lfs
576 lfs
577 $ find .hg/store/lfs -type f
577 $ find .hg/store/lfs -type f
578 .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
578 .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
579
579
580 $ hg debugupgraderepo --run
580 $ hg debugupgraderepo --run
581 upgrade will perform the following actions:
581 upgrade will perform the following actions:
582
582
583 requirements
583 requirements
584 preserved: dotencode, fncache, generaldelta, largefiles, lfs, revlogv1, store
584 preserved: dotencode, fncache, generaldelta, largefiles, lfs, revlogv1, store
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/largefilesrepo/.hg/upgrade.* (glob)
588 creating temporary repository to stage migrated data: $TESTTMP/largefilesrepo/.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 6 total revisions (2 in filelogs, 2 in manifests, 2 in changelog)
590 migrating 6 total revisions (2 in filelogs, 2 in manifests, 2 in changelog)
591 migrating 801 bytes in store; 467 bytes tracked data
591 migrating 801 bytes in store; 467 bytes tracked data
592 migrating 2 filelogs containing 2 revisions (296 bytes in store; 182 bytes tracked data)
592 migrating 2 filelogs containing 2 revisions (296 bytes in store; 182 bytes tracked data)
593 finished migrating 2 filelog revisions across 2 filelogs; change in size: 0 bytes
593 finished migrating 2 filelog revisions across 2 filelogs; change in size: 0 bytes
594 migrating 1 manifests containing 2 revisions (241 bytes in store; 151 bytes tracked data)
594 migrating 1 manifests containing 2 revisions (241 bytes in store; 151 bytes tracked data)
595 finished migrating 2 manifest revisions across 1 manifests; change in size: 0 bytes
595 finished migrating 2 manifest revisions across 1 manifests; change in size: 0 bytes
596 migrating changelog containing 2 revisions (264 bytes in store; 134 bytes tracked data)
596 migrating changelog containing 2 revisions (264 bytes in store; 134 bytes tracked data)
597 finished migrating 2 changelog revisions; change in size: 0 bytes
597 finished migrating 2 changelog revisions; change in size: 0 bytes
598 finished migrating 6 total revisions; total change in store size: 0 bytes
598 finished migrating 6 total revisions; total change in store size: 0 bytes
599 copying phaseroots
599 copying phaseroots
600 copying lfs blob d0beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
600 copying lfs blob d0beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
601 data fully migrated to temporary repository
601 data fully migrated to temporary repository
602 marking source repository as being upgraded; clients will be unable to read from repository
602 marking source repository as being upgraded; clients will be unable to read from repository
603 starting in-place swap of repository data
603 starting in-place swap of repository data
604 replaced files will be backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
604 replaced files will be backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
605 replacing store...
605 replacing store...
606 store replacement complete; repository was inconsistent for *s (glob)
606 store replacement complete; repository was inconsistent for *s (glob)
607 finalizing requirements file and making repository readable again
607 finalizing requirements file and making repository readable again
608 removing temporary repository $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
608 removing temporary repository $TESTTMP/largefilesrepo/.hg/upgrade.* (glob)
609 copy of old repository backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
609 copy of old repository backed up at $TESTTMP/largefilesrepo/.hg/upgradebackup.* (glob)
610 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
610 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
611
611
612 $ grep lfs .hg/requires
612 $ grep lfs .hg/requires
613 lfs
613 lfs
614 $ find .hg/store/lfs -type f
614 $ find .hg/store/lfs -type f
615 .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
615 .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
616 $ hg verify
616 $ hg verify
617 checking changesets
617 checking changesets
618 checking manifests
618 checking manifests
619 crosschecking files in changesets and manifests
619 crosschecking files in changesets and manifests
620 checking files
620 checking files
621 checked 2 changesets with 2 changes to 2 files
621 checked 2 changesets with 2 changes to 2 files
622 $ hg debugdata lfs.bin 0
622 $ hg debugdata lfs.bin 0
623 version https://git-lfs.github.com/spec/v1
623 version https://git-lfs.github.com/spec/v1
624 oid sha256:d0beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
624 oid sha256:d0beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f
625 size 16
625 size 16
626 x-is-binary 0
626 x-is-binary 0
627
627
628 $ cd ..
628 $ cd ..
629
629
630 repository config is taken in account
630 repository config is taken in account
631 -------------------------------------
631 -------------------------------------
632
632
633 $ cat << EOF >> $HGRCPATH
633 $ cat << EOF >> $HGRCPATH
634 > [format]
634 > [format]
635 > maxchainlen = 1
635 > maxchainlen = 1
636 > EOF
636 > EOF
637
637
638 $ hg init localconfig
638 $ hg init localconfig
639 $ cd localconfig
639 $ cd localconfig
640 $ cat << EOF > file
640 $ cat << EOF > file
641 > some content
641 > some content
642 > with some length
642 > with some length
643 > to make sure we get a delta
643 > to make sure we get a delta
644 > after changes
644 > after changes
645 > very long
645 > very long
646 > very long
646 > very long
647 > very long
647 > very long
648 > very long
648 > very long
649 > very long
649 > very long
650 > very long
650 > very long
651 > very long
651 > very long
652 > very long
652 > very long
653 > very long
653 > very long
654 > very long
654 > very long
655 > very long
655 > very long
656 > EOF
656 > EOF
657 $ hg -q commit -A -m A
657 $ hg -q commit -A -m A
658 $ echo "new line" >> file
658 $ echo "new line" >> file
659 $ hg -q commit -m B
659 $ hg -q commit -m B
660 $ echo "new line" >> file
660 $ echo "new line" >> file
661 $ hg -q commit -m C
661 $ hg -q commit -m C
662
662
663 $ cat << EOF >> .hg/hgrc
663 $ cat << EOF >> .hg/hgrc
664 > [format]
664 > [format]
665 > maxchainlen = 9001
665 > maxchainlen = 9001
666 > EOF
666 > EOF
667 $ hg config format
667 $ hg config format
668 format.maxchainlen=9001
668 format.maxchainlen=9001
669 $ hg debugdeltachain file
669 $ hg debugdeltachain file
670 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio
670 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio
671 0 1 1 -1 base 77 182 77 0.42308 77 0 0.00000
671 0 1 1 -1 base 77 182 77 0.42308 77 0 0.00000
672 1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000
672 1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000
673 2 2 1 -1 base 84 200 84 0.42000 84 0 0.00000
673 2 2 1 -1 base 84 200 84 0.42000 84 0 0.00000
674
674
675 $ hg debugupgraderepo --run --optimize redeltaall
675 $ hg debugupgraderepo --run --optimize redeltaall
676 upgrade will perform the following actions:
676 upgrade will perform the following actions:
677
677
678 requirements
678 requirements
679 preserved: dotencode, fncache, generaldelta, revlogv1, store
679 preserved: dotencode, fncache, generaldelta, revlogv1, store
680
680
681 redeltaall
681 redeltaall
682 deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time
682 deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time
683
683
684 beginning upgrade...
684 beginning upgrade...
685 repository locked and read-only
685 repository locked and read-only
686 creating temporary repository to stage migrated data: $TESTTMP/localconfig/.hg/upgrade.* (glob)
686 creating temporary repository to stage migrated data: $TESTTMP/localconfig/.hg/upgrade.* (glob)
687 (it is safe to interrupt this process any time before data migration completes)
687 (it is safe to interrupt this process any time before data migration completes)
688 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
688 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
689 migrating 1.05 KB in store; 882 bytes tracked data
689 migrating 1.05 KB in store; 882 bytes tracked data
690 migrating 1 filelogs containing 3 revisions (374 bytes in store; 573 bytes tracked data)
690 migrating 1 filelogs containing 3 revisions (374 bytes in store; 573 bytes tracked data)
691 finished migrating 3 filelog revisions across 1 filelogs; change in size: -63 bytes
691 finished migrating 3 filelog revisions across 1 filelogs; change in size: -63 bytes
692 migrating 1 manifests containing 3 revisions (333 bytes in store; 138 bytes tracked data)
692 migrating 1 manifests containing 3 revisions (333 bytes in store; 138 bytes tracked data)
693 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
693 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
694 migrating changelog containing 3 revisions (366 bytes in store; 171 bytes tracked data)
694 migrating changelog containing 3 revisions (366 bytes in store; 171 bytes tracked data)
695 finished migrating 3 changelog revisions; change in size: 0 bytes
695 finished migrating 3 changelog revisions; change in size: 0 bytes
696 finished migrating 9 total revisions; total change in store size: -63 bytes
696 finished migrating 9 total revisions; total change in store size: -63 bytes
697 copying phaseroots
697 copying phaseroots
698 data fully migrated to temporary repository
698 data fully migrated to temporary repository
699 marking source repository as being upgraded; clients will be unable to read from repository
699 marking source repository as being upgraded; clients will be unable to read from repository
700 starting in-place swap of repository data
700 starting in-place swap of repository data
701 replaced files will be backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob)
701 replaced files will be backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob)
702 replacing store...
702 replacing store...
703 store replacement complete; repository was inconsistent for *s (glob)
703 store replacement complete; repository was inconsistent for *s (glob)
704 finalizing requirements file and making repository readable again
704 finalizing requirements file and making repository readable again
705 removing temporary repository $TESTTMP/localconfig/.hg/upgrade.* (glob)
705 removing temporary repository $TESTTMP/localconfig/.hg/upgrade.* (glob)
706 copy of old repository backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob)
706 copy of old repository backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob)
707 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
707 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
708 $ hg debugdeltachain file
708 $ hg debugdeltachain file
709 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio
709 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio
710 0 1 1 -1 base 77 182 77 0.42308 77 0 0.00000
710 0 1 1 -1 base 77 182 77 0.42308 77 0 0.00000
711 1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000
711 1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000
712 2 1 3 1 p1 21 200 119 0.59500 119 0 0.00000
712 2 1 3 1 p1 21 200 119 0.59500 119 0 0.00000
713 $ cd ..
713 $ cd ..
714
714
715 $ cat << EOF >> $HGRCPATH
715 $ cat << EOF >> $HGRCPATH
716 > [format]
716 > [format]
717 > maxchainlen = 9001
717 > maxchainlen = 9001
718 > EOF
718 > EOF
719
719
720 Check upgrading a sparse-revlog repository
720 Check upgrading a sparse-revlog repository
721 ---------------------------------------
721 ---------------------------------------
722
722
723 $ hg init sparserevlogrepo
723 $ hg init sparserevlogrepo
724 $ cd sparserevlogrepo
724 $ cd sparserevlogrepo
725 $ touch foo
725 $ touch foo
726 $ hg add foo
726 $ hg add foo
727 $ hg -q commit -m "foo"
727 $ hg -q commit -m "foo"
728 $ cat .hg/requires
728 $ cat .hg/requires
729 dotencode
729 dotencode
730 fncache
730 fncache
731 generaldelta
731 generaldelta
732 revlogv1
732 revlogv1
733 store
733 store
734
734
735 Check that we can add the sparse-revlog format requirement
735 Check that we can add the sparse-revlog format requirement
736 $ hg --config format.sparse-revlog=yes debugupgraderepo --run >/dev/null
736 $ hg --config format.sparse-revlog=yes debugupgraderepo --run >/dev/null
737 copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
737 copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
738 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
738 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
739 $ cat .hg/requires
739 $ cat .hg/requires
740 dotencode
740 dotencode
741 fncache
741 fncache
742 generaldelta
742 generaldelta
743 revlogv1
743 revlogv1
744 sparserevlog
744 sparserevlog
745 store
745 store
746
746
747 Check that we can remove the sparse-revlog format requirement
747 Check that we can remove the sparse-revlog format requirement
748 $ hg --config format.sparse-revlog=no debugupgraderepo --run >/dev/null
748 $ hg --config format.sparse-revlog=no debugupgraderepo --run >/dev/null
749 copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
749 copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
750 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
750 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
751 $ cat .hg/requires
751 $ cat .hg/requires
752 dotencode
752 dotencode
753 fncache
753 fncache
754 generaldelta
754 generaldelta
755 revlogv1
755 revlogv1
756 store
756 store
757 $ cd ..
757 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now