tests/test-upgrade-repo.t
changeset 41088 5608b5a6c323
parent 40918 3764330f76a6
child 41089 a59a74721c76
equal deleted inserted replaced
41087:797a416a91bd 41088:5608b5a6c323
   129   requirements
   129   requirements
   130      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   130      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, 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   re-delta-parent
   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   re-delta-multibase
   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   re-delta-all
   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   re-delta-fulladd
   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 "re-delta-all" 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
   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, sparserevlog, store
   154      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   155   
   155   
   156   redeltaparent
   156   re-delta-parent
   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   re-delta-multibase
   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   re-delta-all
   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   re-delta-fulladd
   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 "re-delta-all" but even slower since more logic is involved.
   169   
   169   
       
   170 
       
   171 modern form of the option
       
   172 
       
   173   $ hg debugupgrade --optimize re-delta-parent
       
   174   (no feature deficiencies found in existing repository)
       
   175   performing an upgrade with "--run" will make the following changes:
       
   176   
       
   177   requirements
       
   178      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
       
   179   
       
   180   re-delta-parent
       
   181      deltas within internal storage will choose a new base revision if needed
       
   182   
       
   183   additional optimizations are available by specifying "--optimize <name>":
       
   184   
       
   185   re-delta-multibase
       
   186      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
       
   187   
       
   188   re-delta-all
       
   189      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
       
   190   
       
   191   re-delta-fulladd
       
   192      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.
       
   193   
       
   194 
       
   195 unknown optimization:
       
   196 
       
   197   $ hg debugupgrade --optimize foobar
       
   198   abort: unknown optimization action requested: foobar
       
   199   (run without arguments to see valid optimizations)
       
   200   [255]
   170 
   201 
   171 Various sub-optimal detections work
   202 Various sub-optimal detections work
   172 
   203 
   173   $ cat > .hg/requires << EOF
   204   $ cat > .hg/requires << EOF
   174   > revlogv1
   205   > revlogv1
   241   sparserevlog
   272   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.
   273      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   
   274   
   244   additional optimizations are available by specifying "--optimize <name>":
   275   additional optimizations are available by specifying "--optimize <name>":
   245   
   276   
   246   redeltaparent
   277   re-delta-parent
   247      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
   278      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
   248   
   279   
   249   redeltamultibase
   280   re-delta-multibase
   250      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
   281      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
   251   
   282   
   252   redeltaall
   283   re-delta-all
   253      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
   284      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
   254   
   285   
   255   redeltafulladd
   286   re-delta-fulladd
   256      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.
   287      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.
   257   
   288   
   258 
   289 
   259   $ hg --config format.dotencode=false debugupgraderepo
   290   $ hg --config format.dotencode=false debugupgraderepo
   260   repository lacks features recommended by current config options:
   291   repository lacks features recommended by current config options:
   261   
   292   
   289   sparserevlog
   320   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.
   321      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   
   322   
   292   additional optimizations are available by specifying "--optimize <name>":
   323   additional optimizations are available by specifying "--optimize <name>":
   293   
   324   
   294   redeltaparent
   325   re-delta-parent
   295      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
   326      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
   296   
   327   
   297   redeltamultibase
   328   re-delta-multibase
   298      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
   329      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
   299   
   330   
   300   redeltaall
   331   re-delta-all
   301      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
   332      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
   302   
   333   
   303   redeltafulladd
   334   re-delta-fulladd
   304      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.
   335      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.
   305   
   336   
   306 
   337 
   307   $ cd ..
   338   $ cd ..
   308 
   339 
   309 Upgrading a repository that is already modern essentially no-ops
   340 Upgrading a repository that is already modern essentially no-ops
   478   upgrade will perform the following actions:
   509   upgrade will perform the following actions:
   479   
   510   
   480   requirements
   511   requirements
   481      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   512      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   482   
   513   
   483   redeltafulladd
   514   re-delta-fulladd
   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
   515      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
   485   
   516   
   486   beginning upgrade...
   517   beginning upgrade...
   487   repository locked and read-only
   518   repository locked and read-only
   488   creating temporary repository to stage migrated data: $TESTTMP/store-filenames/.hg/upgrade.* (glob)
   519   creating temporary repository to stage migrated data: $TESTTMP/store-filenames/.hg/upgrade.* (glob)
   690   upgrade will perform the following actions:
   721   upgrade will perform the following actions:
   691   
   722   
   692   requirements
   723   requirements
   693      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   724      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   694   
   725   
   695   redeltaall
   726   re-delta-all
   696      deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time
   727      deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time
   697   
   728   
   698   beginning upgrade...
   729   beginning upgrade...
   699   repository locked and read-only
   730   repository locked and read-only
   700   creating temporary repository to stage migrated data: $TESTTMP/localconfig/.hg/upgrade.* (glob)
   731   creating temporary repository to stage migrated data: $TESTTMP/localconfig/.hg/upgrade.* (glob)