##// END OF EJS Templates
sparse-revlog: enabled by default...
Boris Feld -
r40954:3764330f default
parent child Browse files
Show More
@@ -694,7 +694,7 b" coreconfigitem('format', 'obsstore-versi"
694 694 default=None,
695 695 )
696 696 coreconfigitem('format', 'sparse-revlog',
697 default=False,
697 default=True,
698 698 )
699 699 coreconfigitem('format', 'usefncache',
700 700 default=True,
@@ -269,7 +269,7 b' class sparserevlog(requirementformatvari'
269 269
270 270 _requirement = localrepo.SPARSEREVLOG_REQUIREMENT
271 271
272 default = False
272 default = True
273 273
274 274 description = _('in order to limit disk reading and memory usage on older '
275 275 'version, the span of a delta chain from its root to its '
@@ -56,7 +56,7 b' An upgrade of a repository created with '
56 56 fncache: yes
57 57 dotencode: yes
58 58 generaldelta: yes
59 sparserevlog: no
59 sparserevlog: yes
60 60 plain-cl-delta: yes
61 61 compression: zlib
62 62 $ hg debugformat --verbose
@@ -64,7 +64,7 b' An upgrade of a repository created with '
64 64 fncache: yes yes yes
65 65 dotencode: yes yes yes
66 66 generaldelta: yes yes yes
67 sparserevlog: no no no
67 sparserevlog: yes yes yes
68 68 plain-cl-delta: yes yes yes
69 69 compression: zlib zlib zlib
70 70 $ hg debugformat --verbose --config format.usefncache=no
@@ -72,7 +72,7 b' An upgrade of a repository created with '
72 72 fncache: yes no yes
73 73 dotencode: yes no yes
74 74 generaldelta: yes yes yes
75 sparserevlog: no no no
75 sparserevlog: yes yes yes
76 76 plain-cl-delta: yes yes yes
77 77 compression: zlib zlib zlib
78 78 $ hg debugformat --verbose --config format.usefncache=no --color=debug
@@ -80,7 +80,7 b' An upgrade of a repository created with '
80 80 [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes]
81 81 [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes]
82 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| yes][formatvariant.config.default| yes][formatvariant.default| yes]
84 84 [formatvariant.name.uptodate|plain-cl-delta:][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
85 85 [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib]
86 86 $ hg debugformat -Tjson
@@ -104,10 +104,10 b' An upgrade of a repository created with '
104 104 "repo": true
105 105 },
106 106 {
107 "config": false,
108 "default": false,
107 "config": true,
108 "default": true,
109 109 "name": "sparserevlog",
110 "repo": false
110 "repo": true
111 111 },
112 112 {
113 113 "config": true,
@@ -127,7 +127,7 b' An upgrade of a repository created with '
127 127 performing an upgrade with "--run" will make the following changes:
128 128
129 129 requirements
130 preserved: dotencode, fncache, generaldelta, revlogv1, store
130 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
131 131
132 132 additional optimizations are available by specifying "--optimize <name>":
133 133
@@ -151,7 +151,7 b' An upgrade of a repository created with '
151 151 performing an upgrade with "--run" will make the following changes:
152 152
153 153 requirements
154 preserved: dotencode, fncache, generaldelta, revlogv1, store
154 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
155 155
156 156 redeltaparent
157 157 deltas within internal storage will choose a new base revision if needed
@@ -188,7 +188,7 b' Various sub-optimal detections work'
188 188 fncache: no yes yes
189 189 dotencode: no yes yes
190 190 generaldelta: no yes yes
191 sparserevlog: no no no
191 sparserevlog: no yes yes
192 192 plain-cl-delta: yes yes yes
193 193 compression: zlib zlib zlib
194 194 $ hg debugformat --verbose --config format.usegeneraldelta=no
@@ -196,7 +196,7 b' Various sub-optimal detections work'
196 196 fncache: no yes yes
197 197 dotencode: no yes yes
198 198 generaldelta: no no yes
199 sparserevlog: no no no
199 sparserevlog: no no yes
200 200 plain-cl-delta: yes yes yes
201 201 compression: zlib zlib zlib
202 202 $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug
@@ -204,7 +204,7 b' Various sub-optimal detections work'
204 204 [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes]
205 205 [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes]
206 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.mismatchdefault|sparserevlog: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes]
208 208 [formatvariant.name.uptodate|plain-cl-delta:][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes]
209 209 [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib]
210 210 $ hg debugupgraderepo
@@ -219,12 +219,15 b' Various sub-optimal detections work'
219 219 generaldelta
220 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 sparserevlog
223 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.
224
222 225
223 226 performing an upgrade with "--run" will make the following changes:
224 227
225 228 requirements
226 229 preserved: revlogv1, store
227 added: dotencode, fncache, generaldelta
230 added: dotencode, fncache, generaldelta, sparserevlog
228 231
229 232 fncache
230 233 repository will be more resilient to storing certain paths and performance of certain operations should be improved
@@ -235,6 +238,9 b' Various sub-optimal detections work'
235 238 generaldelta
236 239 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 240
241 sparserevlog
242 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.
243
238 244 additional optimizations are available by specifying "--optimize <name>":
239 245
240 246 redeltaparent
@@ -259,6 +265,9 b' Various sub-optimal detections work'
259 265 generaldelta
260 266 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 267
268 sparserevlog
269 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.
270
262 271 repository lacks features used by the default config options:
263 272
264 273 dotencode
@@ -269,7 +278,7 b' Various sub-optimal detections work'
269 278
270 279 requirements
271 280 preserved: revlogv1, store
272 added: fncache, generaldelta
281 added: fncache, generaldelta, sparserevlog
273 282
274 283 fncache
275 284 repository will be more resilient to storing certain paths and performance of certain operations should be improved
@@ -277,6 +286,9 b' Various sub-optimal detections work'
277 286 generaldelta
278 287 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 288
289 sparserevlog
290 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.
291
280 292 additional optimizations are available by specifying "--optimize <name>":
281 293
282 294 redeltaparent
@@ -301,7 +313,7 b' Upgrading a repository that is already m'
301 313 upgrade will perform the following actions:
302 314
303 315 requirements
304 preserved: dotencode, fncache, generaldelta, revlogv1, store
316 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
305 317
306 318 beginning upgrade...
307 319 repository locked and read-only
@@ -435,7 +447,7 b" store files with special filenames aren'"
435 447 upgrade will perform the following actions:
436 448
437 449 requirements
438 preserved: dotencode, fncache, generaldelta, revlogv1, store
450 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
439 451
440 452 beginning upgrade...
441 453 repository locked and read-only
@@ -466,7 +478,7 b" store files with special filenames aren'"
466 478 upgrade will perform the following actions:
467 479
468 480 requirements
469 preserved: dotencode, fncache, generaldelta, revlogv1, store
481 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
470 482
471 483 redeltafulladd
472 484 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
@@ -523,13 +535,14 b' Check upgrading a large file repository'
523 535 generaldelta
524 536 largefiles
525 537 revlogv1
538 sparserevlog
526 539 store
527 540
528 541 $ hg debugupgraderepo --run
529 542 upgrade will perform the following actions:
530 543
531 544 requirements
532 preserved: dotencode, fncache, generaldelta, largefiles, revlogv1, store
545 preserved: dotencode, fncache, generaldelta, largefiles, revlogv1, sparserevlog, store
533 546
534 547 beginning upgrade...
535 548 repository locked and read-only
@@ -561,6 +574,7 b' Check upgrading a large file repository'
561 574 generaldelta
562 575 largefiles
563 576 revlogv1
577 sparserevlog
564 578 store
565 579
566 580 $ cat << EOF >> .hg/hgrc
@@ -581,7 +595,7 b' Check upgrading a large file repository'
581 595 upgrade will perform the following actions:
582 596
583 597 requirements
584 preserved: dotencode, fncache, generaldelta, largefiles, lfs, revlogv1, store
598 preserved: dotencode, fncache, generaldelta, largefiles, lfs, revlogv1, sparserevlog, store
585 599
586 600 beginning upgrade...
587 601 repository locked and read-only
@@ -667,16 +681,16 b' repository config is taken in account'
667 681 $ hg config format
668 682 format.maxchainlen=9001
669 683 $ hg debugdeltachain file
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
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
684 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks
685 0 1 1 -1 base 77 182 77 0.42308 77 0 0.00000 77 77 1.00000 1
686 1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000 98 98 1.00000 1
687 2 1 2 0 other 30 200 107 0.53500 128 21 0.19626 128 128 0.83594 1
674 688
675 689 $ hg debugupgraderepo --run --optimize redeltaall
676 690 upgrade will perform the following actions:
677 691
678 692 requirements
679 preserved: dotencode, fncache, generaldelta, revlogv1, store
693 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
680 694
681 695 redeltaall
682 696 deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time
@@ -686,14 +700,14 b' repository config is taken in account'
686 700 creating temporary repository to stage migrated data: $TESTTMP/localconfig/.hg/upgrade.* (glob)
687 701 (it is safe to interrupt this process any time before data migration completes)
688 702 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
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)
691 finished migrating 3 filelog revisions across 1 filelogs; change in size: -63 bytes
703 migrating 1019 bytes in store; 882 bytes tracked data
704 migrating 1 filelogs containing 3 revisions (320 bytes in store; 573 bytes tracked data)
705 finished migrating 3 filelog revisions across 1 filelogs; change in size: -9 bytes
692 706 migrating 1 manifests containing 3 revisions (333 bytes in store; 138 bytes tracked data)
693 707 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
694 708 migrating changelog containing 3 revisions (366 bytes in store; 171 bytes tracked data)
695 709 finished migrating 3 changelog revisions; change in size: 0 bytes
696 finished migrating 9 total revisions; total change in store size: -63 bytes
710 finished migrating 9 total revisions; total change in store size: -9 bytes
697 711 copying phaseroots
698 712 data fully migrated to temporary repository
699 713 marking source repository as being upgraded; clients will be unable to read from repository
@@ -706,10 +720,10 b' repository config is taken in account'
706 720 copy of old repository backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob)
707 721 the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
708 722 $ hg debugdeltachain file
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
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
723 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks
724 0 1 1 -1 base 77 182 77 0.42308 77 0 0.00000 77 77 1.00000 1
725 1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000 98 98 1.00000 1
726 2 1 3 1 p1 21 200 119 0.59500 119 0 0.00000 119 119 1.00000 1
713 727 $ cd ..
714 728
715 729 $ cat << EOF >> $HGRCPATH
General Comments 0
You need to be logged in to leave comments. Login now