tests/test-upgrade-repo.t
branchstable
changeset 45181 28163c5de797
parent 44799 ea9563e9e65a
child 46002 705c37f22859
equal deleted inserted replaced
45092:e699cebc3ae9 45181:28163c5de797
    50 An upgrade of a repository created with recommended settings only suggests optimizations
    50 An upgrade of a repository created with recommended settings only suggests optimizations
    51 
    51 
    52   $ hg init empty
    52   $ hg init empty
    53   $ cd empty
    53   $ cd empty
    54   $ hg debugformat
    54   $ hg debugformat
    55   format-variant    repo
    55   format-variant     repo
    56   fncache:           yes
    56   fncache:            yes
    57   dotencode:         yes
    57   dotencode:          yes
    58   generaldelta:      yes
    58   generaldelta:       yes
    59   sparserevlog:      yes
    59   sparserevlog:       yes
    60   sidedata:           no
    60   sidedata:            no
    61   copies-sdc:         no
    61   persistent-nodemap:  no
    62   plain-cl-delta:    yes
    62   copies-sdc:          no
    63   compression:       zlib
    63   plain-cl-delta:     yes
    64   compression-level: default
    64   compression:        zlib
       
    65   compression-level:  default
    65   $ hg debugformat --verbose
    66   $ hg debugformat --verbose
    66   format-variant    repo config default
    67   format-variant     repo config default
    67   fncache:           yes    yes     yes
    68   fncache:            yes    yes     yes
    68   dotencode:         yes    yes     yes
    69   dotencode:          yes    yes     yes
    69   generaldelta:      yes    yes     yes
    70   generaldelta:       yes    yes     yes
    70   sparserevlog:      yes    yes     yes
    71   sparserevlog:       yes    yes     yes
    71   sidedata:           no     no      no
    72   sidedata:            no     no      no
    72   copies-sdc:         no     no      no
    73   persistent-nodemap:  no     no      no
    73   plain-cl-delta:    yes    yes     yes
    74   copies-sdc:          no     no      no
    74   compression:       zlib   zlib    zlib
    75   plain-cl-delta:     yes    yes     yes
    75   compression-level: default default default
    76   compression:        zlib   zlib    zlib
       
    77   compression-level:  default default default
    76   $ hg debugformat --verbose --config format.usefncache=no
    78   $ hg debugformat --verbose --config format.usefncache=no
    77   format-variant    repo config default
    79   format-variant     repo config default
    78   fncache:           yes     no     yes
    80   fncache:            yes     no     yes
    79   dotencode:         yes     no     yes
    81   dotencode:          yes     no     yes
    80   generaldelta:      yes    yes     yes
    82   generaldelta:       yes    yes     yes
    81   sparserevlog:      yes    yes     yes
    83   sparserevlog:       yes    yes     yes
    82   sidedata:           no     no      no
    84   sidedata:            no     no      no
    83   copies-sdc:         no     no      no
    85   persistent-nodemap:  no     no      no
    84   plain-cl-delta:    yes    yes     yes
    86   copies-sdc:          no     no      no
    85   compression:       zlib   zlib    zlib
    87   plain-cl-delta:     yes    yes     yes
    86   compression-level: default default default
    88   compression:        zlib   zlib    zlib
       
    89   compression-level:  default default default
    87   $ hg debugformat --verbose --config format.usefncache=no --color=debug
    90   $ hg debugformat --verbose --config format.usefncache=no --color=debug
    88   format-variant    repo config default
    91   format-variant     repo config default
    89   [formatvariant.name.mismatchconfig|fncache:          ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special|     no][formatvariant.default|     yes]
    92   [formatvariant.name.mismatchconfig|fncache:           ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special|     no][formatvariant.default|     yes]
    90   [formatvariant.name.mismatchconfig|dotencode:        ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special|     no][formatvariant.default|     yes]
    93   [formatvariant.name.mismatchconfig|dotencode:         ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special|     no][formatvariant.default|     yes]
    91   [formatvariant.name.uptodate|generaldelta:     ][formatvariant.repo.uptodate| yes][formatvariant.config.default|    yes][formatvariant.default|     yes]
    94   [formatvariant.name.uptodate|generaldelta:      ][formatvariant.repo.uptodate| yes][formatvariant.config.default|    yes][formatvariant.default|     yes]
    92   [formatvariant.name.uptodate|sparserevlog:     ][formatvariant.repo.uptodate| yes][formatvariant.config.default|    yes][formatvariant.default|     yes]
    95   [formatvariant.name.uptodate|sparserevlog:      ][formatvariant.repo.uptodate| yes][formatvariant.config.default|    yes][formatvariant.default|     yes]
    93   [formatvariant.name.uptodate|sidedata:         ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
    96   [formatvariant.name.uptodate|sidedata:          ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
    94   [formatvariant.name.uptodate|copies-sdc:       ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
    97   [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
    95   [formatvariant.name.uptodate|plain-cl-delta:   ][formatvariant.repo.uptodate| yes][formatvariant.config.default|    yes][formatvariant.default|     yes]
    98   [formatvariant.name.uptodate|copies-sdc:        ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
    96   [formatvariant.name.uptodate|compression:      ][formatvariant.repo.uptodate| zlib][formatvariant.config.default|   zlib][formatvariant.default|    zlib]
    99   [formatvariant.name.uptodate|plain-cl-delta:    ][formatvariant.repo.uptodate| yes][formatvariant.config.default|    yes][formatvariant.default|     yes]
    97   [formatvariant.name.uptodate|compression-level:][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default]
   100   [formatvariant.name.uptodate|compression:       ][formatvariant.repo.uptodate| zlib][formatvariant.config.default|   zlib][formatvariant.default|    zlib]
       
   101   [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default]
    98   $ hg debugformat -Tjson
   102   $ hg debugformat -Tjson
    99   [
   103   [
   100    {
   104    {
   101     "config": true,
   105     "config": true,
   102     "default": true,
   106     "default": true,
   128     "repo": false
   132     "repo": false
   129    },
   133    },
   130    {
   134    {
   131     "config": false,
   135     "config": false,
   132     "default": false,
   136     "default": false,
       
   137     "name": "persistent-nodemap",
       
   138     "repo": false
       
   139    },
       
   140    {
       
   141     "config": false,
       
   142     "default": false,
   133     "name": "copies-sdc",
   143     "name": "copies-sdc",
   134     "repo": false
   144     "repo": false
   135    },
   145    },
   136    {
   146    {
   137     "config": true,
   147     "config": true,
   172   
   182   
   173   re-delta-fulladd
   183   re-delta-fulladd
   174      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.
   184      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.
   175   
   185   
   176 
   186 
       
   187   $ hg debugupgraderepo --quiet
       
   188   requirements
       
   189      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
       
   190   
       
   191 
   177 --optimize can be used to add optimizations
   192 --optimize can be used to add optimizations
   178 
   193 
   179   $ hg debugupgrade --optimize redeltaparent
   194   $ hg debugupgrade --optimize redeltaparent
   180   (no feature deficiencies found in existing repository)
   195   (no feature deficiencies found in existing repository)
   181   performing an upgrade with "--run" will make the following changes:
   196   performing an upgrade with "--run" will make the following changes:
   182   
   197   
   183   requirements
   198   requirements
   184      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   199      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   185   
   200   
       
   201   optimisations: re-delta-parent
       
   202   
   186   re-delta-parent
   203   re-delta-parent
   187      deltas within internal storage will choose a new base revision if needed
   204      deltas within internal storage will choose a new base revision if needed
   188   
   205   
   189   additional optimizations are available by specifying "--optimize <name>":
   206   additional optimizations are available by specifying "--optimize <name>":
   190   
   207   
   205   performing an upgrade with "--run" will make the following changes:
   222   performing an upgrade with "--run" will make the following changes:
   206   
   223   
   207   requirements
   224   requirements
   208      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   225      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   209   
   226   
       
   227   optimisations: re-delta-parent
       
   228   
   210   re-delta-parent
   229   re-delta-parent
   211      deltas within internal storage will choose a new base revision if needed
   230      deltas within internal storage will choose a new base revision if needed
   212   
   231   
   213   additional optimizations are available by specifying "--optimize <name>":
   232   additional optimizations are available by specifying "--optimize <name>":
   214   
   233   
   218   re-delta-all
   237   re-delta-all
   219      deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed
   238      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
   220   
   239   
   221   re-delta-fulladd
   240   re-delta-fulladd
   222      every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved.
   241      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.
       
   242   
       
   243   $ hg debugupgrade --optimize re-delta-parent --quiet
       
   244   requirements
       
   245      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
       
   246   
       
   247   optimisations: re-delta-parent
   223   
   248   
   224 
   249 
   225 unknown optimization:
   250 unknown optimization:
   226 
   251 
   227   $ hg debugupgrade --optimize foobar
   252   $ hg debugupgrade --optimize foobar
   235   > revlogv1
   260   > revlogv1
   236   > store
   261   > store
   237   > EOF
   262   > EOF
   238 
   263 
   239   $ hg debugformat
   264   $ hg debugformat
   240   format-variant    repo
   265   format-variant     repo
   241   fncache:            no
   266   fncache:             no
   242   dotencode:          no
   267   dotencode:           no
   243   generaldelta:       no
   268   generaldelta:        no
   244   sparserevlog:       no
   269   sparserevlog:        no
   245   sidedata:           no
   270   sidedata:            no
   246   copies-sdc:         no
   271   persistent-nodemap:  no
   247   plain-cl-delta:    yes
   272   copies-sdc:          no
   248   compression:       zlib
   273   plain-cl-delta:     yes
   249   compression-level: default
   274   compression:        zlib
       
   275   compression-level:  default
   250   $ hg debugformat --verbose
   276   $ hg debugformat --verbose
   251   format-variant    repo config default
   277   format-variant     repo config default
   252   fncache:            no    yes     yes
   278   fncache:             no    yes     yes
   253   dotencode:          no    yes     yes
   279   dotencode:           no    yes     yes
   254   generaldelta:       no    yes     yes
   280   generaldelta:        no    yes     yes
   255   sparserevlog:       no    yes     yes
   281   sparserevlog:        no    yes     yes
   256   sidedata:           no     no      no
   282   sidedata:            no     no      no
   257   copies-sdc:         no     no      no
   283   persistent-nodemap:  no     no      no
   258   plain-cl-delta:    yes    yes     yes
   284   copies-sdc:          no     no      no
   259   compression:       zlib   zlib    zlib
   285   plain-cl-delta:     yes    yes     yes
   260   compression-level: default default default
   286   compression:        zlib   zlib    zlib
       
   287   compression-level:  default default default
   261   $ hg debugformat --verbose --config format.usegeneraldelta=no
   288   $ hg debugformat --verbose --config format.usegeneraldelta=no
   262   format-variant    repo config default
   289   format-variant     repo config default
   263   fncache:            no    yes     yes
   290   fncache:             no    yes     yes
   264   dotencode:          no    yes     yes
   291   dotencode:           no    yes     yes
   265   generaldelta:       no     no     yes
   292   generaldelta:        no     no     yes
   266   sparserevlog:       no     no     yes
   293   sparserevlog:        no     no     yes
   267   sidedata:           no     no      no
   294   sidedata:            no     no      no
   268   copies-sdc:         no     no      no
   295   persistent-nodemap:  no     no      no
   269   plain-cl-delta:    yes    yes     yes
   296   copies-sdc:          no     no      no
   270   compression:       zlib   zlib    zlib
   297   plain-cl-delta:     yes    yes     yes
   271   compression-level: default default default
   298   compression:        zlib   zlib    zlib
       
   299   compression-level:  default default default
   272   $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug
   300   $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug
   273   format-variant    repo config default
   301   format-variant     repo config default
   274   [formatvariant.name.mismatchconfig|fncache:          ][formatvariant.repo.mismatchconfig|  no][formatvariant.config.default|    yes][formatvariant.default|     yes]
   302   [formatvariant.name.mismatchconfig|fncache:           ][formatvariant.repo.mismatchconfig|  no][formatvariant.config.default|    yes][formatvariant.default|     yes]
   275   [formatvariant.name.mismatchconfig|dotencode:        ][formatvariant.repo.mismatchconfig|  no][formatvariant.config.default|    yes][formatvariant.default|     yes]
   303   [formatvariant.name.mismatchconfig|dotencode:         ][formatvariant.repo.mismatchconfig|  no][formatvariant.config.default|    yes][formatvariant.default|     yes]
   276   [formatvariant.name.mismatchdefault|generaldelta:     ][formatvariant.repo.mismatchdefault|  no][formatvariant.config.special|     no][formatvariant.default|     yes]
   304   [formatvariant.name.mismatchdefault|generaldelta:      ][formatvariant.repo.mismatchdefault|  no][formatvariant.config.special|     no][formatvariant.default|     yes]
   277   [formatvariant.name.mismatchdefault|sparserevlog:     ][formatvariant.repo.mismatchdefault|  no][formatvariant.config.special|     no][formatvariant.default|     yes]
   305   [formatvariant.name.mismatchdefault|sparserevlog:      ][formatvariant.repo.mismatchdefault|  no][formatvariant.config.special|     no][formatvariant.default|     yes]
   278   [formatvariant.name.uptodate|sidedata:         ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
   306   [formatvariant.name.uptodate|sidedata:          ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
   279   [formatvariant.name.uptodate|copies-sdc:       ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
   307   [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
   280   [formatvariant.name.uptodate|plain-cl-delta:   ][formatvariant.repo.uptodate| yes][formatvariant.config.default|    yes][formatvariant.default|     yes]
   308   [formatvariant.name.uptodate|copies-sdc:        ][formatvariant.repo.uptodate|  no][formatvariant.config.default|     no][formatvariant.default|      no]
   281   [formatvariant.name.uptodate|compression:      ][formatvariant.repo.uptodate| zlib][formatvariant.config.default|   zlib][formatvariant.default|    zlib]
   309   [formatvariant.name.uptodate|plain-cl-delta:    ][formatvariant.repo.uptodate| yes][formatvariant.config.default|    yes][formatvariant.default|     yes]
   282   [formatvariant.name.uptodate|compression-level:][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default]
   310   [formatvariant.name.uptodate|compression:       ][formatvariant.repo.uptodate| zlib][formatvariant.config.default|   zlib][formatvariant.default|    zlib]
       
   311   [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default]
   283   $ hg debugupgraderepo
   312   $ hg debugupgraderepo
   284   repository lacks features recommended by current config options:
   313   repository lacks features recommended by current config options:
   285   
   314   
   286   fncache
   315   fncache
   287      long and reserved filenames may not work correctly; repository performance is sub-optimal
   316      long and reserved filenames may not work correctly; repository performance is sub-optimal
   325   re-delta-all
   354   re-delta-all
   326      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
   355      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
   327   
   356   
   328   re-delta-fulladd
   357   re-delta-fulladd
   329      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.
   358      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.
       
   359   
       
   360   $ hg debugupgraderepo --quiet
       
   361   requirements
       
   362      preserved: revlogv1, store
       
   363      added: dotencode, fncache, generaldelta, sparserevlog
   330   
   364   
   331 
   365 
   332   $ hg --config format.dotencode=false debugupgraderepo
   366   $ hg --config format.dotencode=false debugupgraderepo
   333   repository lacks features recommended by current config options:
   367   repository lacks features recommended by current config options:
   334   
   368   
   566   $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
   600   $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
   567   upgrade will perform the following actions:
   601   upgrade will perform the following actions:
   568   
   602   
   569   requirements
   603   requirements
   570      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   604      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
       
   605   
       
   606   optimisations: re-delta-parent
   571   
   607   
   572   re-delta-parent
   608   re-delta-parent
   573      deltas within internal storage will choose a new base revision if needed
   609      deltas within internal storage will choose a new base revision if needed
   574   
   610   
   575   beginning upgrade...
   611   beginning upgrade...
   640   $ hg debugupgrade --optimize re-delta-parent --run --no-manifest --no-backup --debug --traceback
   676   $ hg debugupgrade --optimize re-delta-parent --run --no-manifest --no-backup --debug --traceback
   641   upgrade will perform the following actions:
   677   upgrade will perform the following actions:
   642   
   678   
   643   requirements
   679   requirements
   644      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   680      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
       
   681   
       
   682   optimisations: re-delta-parent
   645   
   683   
   646   re-delta-parent
   684   re-delta-parent
   647      deltas within internal storage will choose a new base revision if needed
   685      deltas within internal storage will choose a new base revision if needed
   648   
   686   
   649   beginning upgrade...
   687   beginning upgrade...
   687   upgrade will perform the following actions:
   725   upgrade will perform the following actions:
   688   
   726   
   689   requirements
   727   requirements
   690      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   728      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   691   
   729   
       
   730   optimisations: re-delta-parent
       
   731   
   692   re-delta-parent
   732   re-delta-parent
   693      deltas within internal storage will choose a new base revision if needed
   733      deltas within internal storage will choose a new base revision if needed
   694   
   734   
   695   beginning upgrade...
   735   beginning upgrade...
   696   repository locked and read-only
   736   repository locked and read-only
   733   upgrade will perform the following actions:
   773   upgrade will perform the following actions:
   734   
   774   
   735   requirements
   775   requirements
   736      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   776      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   737   
   777   
       
   778   optimisations: re-delta-parent
       
   779   
   738   re-delta-parent
   780   re-delta-parent
   739      deltas within internal storage will choose a new base revision if needed
   781      deltas within internal storage will choose a new base revision if needed
   740   
   782   
   741   beginning upgrade...
   783   beginning upgrade...
   742   repository locked and read-only
   784   repository locked and read-only
   784   
   826   
   785   requirements
   827   requirements
   786      preserved: dotencode, fncache, generaldelta, revlogv1, store
   828      preserved: dotencode, fncache, generaldelta, revlogv1, store
   787      removed: sparserevlog
   829      removed: sparserevlog
   788   
   830   
       
   831   optimisations: re-delta-parent
       
   832   
   789   re-delta-parent
   833   re-delta-parent
   790      deltas within internal storage will choose a new base revision if needed
   834      deltas within internal storage will choose a new base revision if needed
   791   
   835   
   792   beginning upgrade...
   836   beginning upgrade...
   793   repository locked and read-only
   837   repository locked and read-only
   833   
   877   
   834   requirements
   878   requirements
   835      preserved: dotencode, fncache, generaldelta, revlogv1, store
   879      preserved: dotencode, fncache, generaldelta, revlogv1, store
   836      added: sparserevlog
   880      added: sparserevlog
   837   
   881   
       
   882   optimisations: re-delta-parent
       
   883   
   838   sparserevlog
   884   sparserevlog
   839      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.
   885      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.
   840   
   886   
   841   re-delta-parent
   887   re-delta-parent
   842      deltas within internal storage will choose a new base revision if needed
   888      deltas within internal storage will choose a new base revision if needed
   921   upgrade will perform the following actions:
   967   upgrade will perform the following actions:
   922   
   968   
   923   requirements
   969   requirements
   924      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   970      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
   925   
   971   
       
   972   optimisations: re-delta-fulladd
       
   973   
   926   re-delta-fulladd
   974   re-delta-fulladd
   927      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
   975      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
   928   
   976   
   929   beginning upgrade...
   977   beginning upgrade...
   930   repository locked and read-only
   978   repository locked and read-only
  1132   $ hg debugupgraderepo --run --optimize redeltaall
  1180   $ hg debugupgraderepo --run --optimize redeltaall
  1133   upgrade will perform the following actions:
  1181   upgrade will perform the following actions:
  1134   
  1182   
  1135   requirements
  1183   requirements
  1136      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
  1184      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
       
  1185   
       
  1186   optimisations: re-delta-all
  1137   
  1187   
  1138   re-delta-all
  1188   re-delta-all
  1139      deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time
  1189      deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time
  1140   
  1190   
  1141   beginning upgrade...
  1191   beginning upgrade...
  1188   generaldelta
  1238   generaldelta
  1189   revlogv1
  1239   revlogv1
  1190   store
  1240   store
  1191 
  1241 
  1192 Check that we can add the sparse-revlog format requirement
  1242 Check that we can add the sparse-revlog format requirement
  1193   $ hg --config format.sparse-revlog=yes debugupgraderepo --run >/dev/null
  1243   $ hg --config format.sparse-revlog=yes debugupgraderepo --run --quiet
  1194   copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
  1244   upgrade will perform the following actions:
  1195   the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
  1245   
       
  1246   requirements
       
  1247      preserved: dotencode, fncache, generaldelta, revlogv1, store
       
  1248      added: sparserevlog
       
  1249   
  1196   $ cat .hg/requires
  1250   $ cat .hg/requires
  1197   dotencode
  1251   dotencode
  1198   fncache
  1252   fncache
  1199   generaldelta
  1253   generaldelta
  1200   revlogv1
  1254   revlogv1
  1201   sparserevlog
  1255   sparserevlog
  1202   store
  1256   store
  1203 
  1257 
  1204 Check that we can remove the sparse-revlog format requirement
  1258 Check that we can remove the sparse-revlog format requirement
  1205   $ hg --config format.sparse-revlog=no debugupgraderepo --run >/dev/null
  1259   $ hg --config format.sparse-revlog=no debugupgraderepo --run --quiet
  1206   copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
  1260   upgrade will perform the following actions:
  1207   the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
  1261   
       
  1262   requirements
       
  1263      preserved: dotencode, fncache, generaldelta, revlogv1, store
       
  1264      removed: sparserevlog
       
  1265   
  1208   $ cat .hg/requires
  1266   $ cat .hg/requires
  1209   dotencode
  1267   dotencode
  1210   fncache
  1268   fncache
  1211   generaldelta
  1269   generaldelta
  1212   revlogv1
  1270   revlogv1
  1217 Check upgrading to a zstd revlog
  1275 Check upgrading to a zstd revlog
  1218 --------------------------------
  1276 --------------------------------
  1219 
  1277 
  1220 upgrade
  1278 upgrade
  1221 
  1279 
  1222   $ hg --config format.revlog-compression=zstd debugupgraderepo --run  --no-backup >/dev/null
  1280   $ hg --config format.revlog-compression=zstd debugupgraderepo --run  --no-backup --quiet
       
  1281   upgrade will perform the following actions:
       
  1282   
       
  1283   requirements
       
  1284      preserved: dotencode, fncache, generaldelta, revlogv1, store
       
  1285      added: revlog-compression-zstd, sparserevlog
       
  1286   
  1223   $ hg debugformat -v
  1287   $ hg debugformat -v
  1224   format-variant    repo config default
  1288   format-variant     repo config default
  1225   fncache:           yes    yes     yes
  1289   fncache:            yes    yes     yes
  1226   dotencode:         yes    yes     yes
  1290   dotencode:          yes    yes     yes
  1227   generaldelta:      yes    yes     yes
  1291   generaldelta:       yes    yes     yes
  1228   sparserevlog:      yes    yes     yes
  1292   sparserevlog:       yes    yes     yes
  1229   sidedata:           no     no      no
  1293   sidedata:            no     no      no
  1230   copies-sdc:         no     no      no
  1294   persistent-nodemap:  no     no      no
  1231   plain-cl-delta:    yes    yes     yes
  1295   copies-sdc:          no     no      no
  1232   compression:       zstd   zlib    zlib
  1296   plain-cl-delta:     yes    yes     yes
  1233   compression-level: default default default
  1297   compression:        zstd   zlib    zlib
       
  1298   compression-level:  default default default
  1234   $ cat .hg/requires
  1299   $ cat .hg/requires
  1235   dotencode
  1300   dotencode
  1236   fncache
  1301   fncache
  1237   generaldelta
  1302   generaldelta
  1238   revlog-compression-zstd
  1303   revlog-compression-zstd
  1240   sparserevlog
  1305   sparserevlog
  1241   store
  1306   store
  1242 
  1307 
  1243 downgrade
  1308 downgrade
  1244 
  1309 
  1245   $ hg debugupgraderepo --run --no-backup > /dev/null
  1310   $ hg debugupgraderepo --run --no-backup --quiet
       
  1311   upgrade will perform the following actions:
       
  1312   
       
  1313   requirements
       
  1314      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
       
  1315      removed: revlog-compression-zstd
       
  1316   
  1246   $ hg debugformat -v
  1317   $ hg debugformat -v
  1247   format-variant    repo config default
  1318   format-variant     repo config default
  1248   fncache:           yes    yes     yes
  1319   fncache:            yes    yes     yes
  1249   dotencode:         yes    yes     yes
  1320   dotencode:          yes    yes     yes
  1250   generaldelta:      yes    yes     yes
  1321   generaldelta:       yes    yes     yes
  1251   sparserevlog:      yes    yes     yes
  1322   sparserevlog:       yes    yes     yes
  1252   sidedata:           no     no      no
  1323   sidedata:            no     no      no
  1253   copies-sdc:         no     no      no
  1324   persistent-nodemap:  no     no      no
  1254   plain-cl-delta:    yes    yes     yes
  1325   copies-sdc:          no     no      no
  1255   compression:       zlib   zlib    zlib
  1326   plain-cl-delta:     yes    yes     yes
  1256   compression-level: default default default
  1327   compression:        zlib   zlib    zlib
       
  1328   compression-level:  default default default
  1257   $ cat .hg/requires
  1329   $ cat .hg/requires
  1258   dotencode
  1330   dotencode
  1259   fncache
  1331   fncache
  1260   generaldelta
  1332   generaldelta
  1261   revlogv1
  1333   revlogv1
  1266 
  1338 
  1267   $ cat >> .hg/hgrc << EOF
  1339   $ cat >> .hg/hgrc << EOF
  1268   > [format]
  1340   > [format]
  1269   > revlog-compression=zstd
  1341   > revlog-compression=zstd
  1270   > EOF
  1342   > EOF
  1271   $ hg debugupgraderepo --run --no-backup > /dev/null
  1343   $ hg debugupgraderepo --run --no-backup --quiet
       
  1344   upgrade will perform the following actions:
       
  1345   
       
  1346   requirements
       
  1347      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
       
  1348      added: revlog-compression-zstd
       
  1349   
  1272   $ hg debugformat -v
  1350   $ hg debugformat -v
  1273   format-variant    repo config default
  1351   format-variant     repo config default
  1274   fncache:           yes    yes     yes
  1352   fncache:            yes    yes     yes
  1275   dotencode:         yes    yes     yes
  1353   dotencode:          yes    yes     yes
  1276   generaldelta:      yes    yes     yes
  1354   generaldelta:       yes    yes     yes
  1277   sparserevlog:      yes    yes     yes
  1355   sparserevlog:       yes    yes     yes
  1278   sidedata:           no     no      no
  1356   sidedata:            no     no      no
  1279   copies-sdc:         no     no      no
  1357   persistent-nodemap:  no     no      no
  1280   plain-cl-delta:    yes    yes     yes
  1358   copies-sdc:          no     no      no
  1281   compression:       zstd   zstd    zlib
  1359   plain-cl-delta:     yes    yes     yes
  1282   compression-level: default default default
  1360   compression:        zstd   zstd    zlib
       
  1361   compression-level:  default default default
  1283   $ cat .hg/requires
  1362   $ cat .hg/requires
  1284   dotencode
  1363   dotencode
  1285   fncache
  1364   fncache
  1286   generaldelta
  1365   generaldelta
  1287   revlog-compression-zstd
  1366   revlog-compression-zstd
  1294 Check upgrading to a side-data revlog
  1373 Check upgrading to a side-data revlog
  1295 -------------------------------------
  1374 -------------------------------------
  1296 
  1375 
  1297 upgrade
  1376 upgrade
  1298 
  1377 
  1299   $ hg --config format.exp-use-side-data=yes debugupgraderepo --run  --no-backup --config "extensions.sidedata=$TESTDIR/testlib/ext-sidedata.py" >/dev/null
  1378   $ hg --config format.exp-use-side-data=yes debugupgraderepo --run  --no-backup --config "extensions.sidedata=$TESTDIR/testlib/ext-sidedata.py" --quiet
       
  1379   upgrade will perform the following actions:
       
  1380   
       
  1381   requirements
       
  1382      preserved: dotencode, fncache, generaldelta, revlogv1, store (no-zstd !)
       
  1383      preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !)
       
  1384      added: exp-sidedata-flag (zstd !)
       
  1385      added: exp-sidedata-flag, sparserevlog (no-zstd !)
       
  1386   
  1300   $ hg debugformat -v
  1387   $ hg debugformat -v
  1301   format-variant    repo config default
  1388   format-variant     repo config default
  1302   fncache:           yes    yes     yes
  1389   fncache:            yes    yes     yes
  1303   dotencode:         yes    yes     yes
  1390   dotencode:          yes    yes     yes
  1304   generaldelta:      yes    yes     yes
  1391   generaldelta:       yes    yes     yes
  1305   sparserevlog:      yes    yes     yes
  1392   sparserevlog:       yes    yes     yes
  1306   sidedata:          yes     no      no
  1393   sidedata:           yes     no      no
  1307   copies-sdc:         no     no      no
  1394   persistent-nodemap:  no     no      no
  1308   plain-cl-delta:    yes    yes     yes
  1395   copies-sdc:          no     no      no
  1309   compression:       zstd   zstd    zlib (zstd !)
  1396   plain-cl-delta:     yes    yes     yes
  1310   compression:       zlib   zlib    zlib (no-zstd !)
  1397   compression:        zlib   zlib    zlib (no-zstd !)
  1311   compression-level: default default default
  1398   compression:        zstd   zstd    zlib (zstd !)
       
  1399   compression-level:  default default default
  1312   $ cat .hg/requires
  1400   $ cat .hg/requires
  1313   dotencode
  1401   dotencode
  1314   exp-sidedata-flag
  1402   exp-sidedata-flag
  1315   fncache
  1403   fncache
  1316   generaldelta
  1404   generaldelta
  1323    entry-0001 size 4
  1411    entry-0001 size 4
  1324    entry-0002 size 32
  1412    entry-0002 size 32
  1325 
  1413 
  1326 downgrade
  1414 downgrade
  1327 
  1415 
  1328   $ hg debugupgraderepo --config format.exp-use-side-data=no --run --no-backup > /dev/null
  1416   $ hg debugupgraderepo --config format.exp-use-side-data=no --run --no-backup --quiet
       
  1417   upgrade will perform the following actions:
       
  1418   
       
  1419   requirements
       
  1420      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-zstd !)
       
  1421      preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !)
       
  1422      removed: exp-sidedata-flag
       
  1423   
  1329   $ hg debugformat -v
  1424   $ hg debugformat -v
  1330   format-variant    repo config default
  1425   format-variant     repo config default
  1331   fncache:           yes    yes     yes
  1426   fncache:            yes    yes     yes
  1332   dotencode:         yes    yes     yes
  1427   dotencode:          yes    yes     yes
  1333   generaldelta:      yes    yes     yes
  1428   generaldelta:       yes    yes     yes
  1334   sparserevlog:      yes    yes     yes
  1429   sparserevlog:       yes    yes     yes
  1335   sidedata:           no     no      no
  1430   sidedata:            no     no      no
  1336   copies-sdc:         no     no      no
  1431   persistent-nodemap:  no     no      no
  1337   plain-cl-delta:    yes    yes     yes
  1432   copies-sdc:          no     no      no
  1338   compression:       zstd   zstd    zlib (zstd !)
  1433   plain-cl-delta:     yes    yes     yes
  1339   compression:       zlib   zlib    zlib (no-zstd !)
  1434   compression:        zlib   zlib    zlib (no-zstd !)
  1340   compression-level: default default default
  1435   compression:        zstd   zstd    zlib (zstd !)
       
  1436   compression-level:  default default default
  1341   $ cat .hg/requires
  1437   $ cat .hg/requires
  1342   dotencode
  1438   dotencode
  1343   fncache
  1439   fncache
  1344   generaldelta
  1440   generaldelta
  1345   revlog-compression-zstd (zstd !)
  1441   revlog-compression-zstd (zstd !)
  1352 
  1448 
  1353   $ cat >> .hg/hgrc << EOF
  1449   $ cat >> .hg/hgrc << EOF
  1354   > [format]
  1450   > [format]
  1355   > exp-use-side-data=yes
  1451   > exp-use-side-data=yes
  1356   > EOF
  1452   > EOF
  1357   $ hg debugupgraderepo --run --no-backup > /dev/null
  1453   $ hg debugupgraderepo --run --no-backup --quiet
       
  1454   upgrade will perform the following actions:
       
  1455   
       
  1456   requirements
       
  1457      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-zstd !)
       
  1458      preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !)
       
  1459      added: exp-sidedata-flag
       
  1460   
  1358   $ hg debugformat -v
  1461   $ hg debugformat -v
  1359   format-variant    repo config default
  1462   format-variant     repo config default
  1360   fncache:           yes    yes     yes
  1463   fncache:            yes    yes     yes
  1361   dotencode:         yes    yes     yes
  1464   dotencode:          yes    yes     yes
  1362   generaldelta:      yes    yes     yes
  1465   generaldelta:       yes    yes     yes
  1363   sparserevlog:      yes    yes     yes
  1466   sparserevlog:       yes    yes     yes
  1364   sidedata:          yes    yes      no
  1467   sidedata:           yes    yes      no
  1365   copies-sdc:         no     no      no
  1468   persistent-nodemap:  no     no      no
  1366   plain-cl-delta:    yes    yes     yes
  1469   copies-sdc:          no     no      no
  1367   compression:       zstd   zstd    zlib (zstd !)
  1470   plain-cl-delta:     yes    yes     yes
  1368   compression:       zlib   zlib    zlib (no-zstd !)
  1471   compression:        zlib   zlib    zlib (no-zstd !)
  1369   compression-level: default default default
  1472   compression:        zstd   zstd    zlib (zstd !)
       
  1473   compression-level:  default default default
  1370   $ cat .hg/requires
  1474   $ cat .hg/requires
  1371   dotencode
  1475   dotencode
  1372   exp-sidedata-flag
  1476   exp-sidedata-flag
  1373   fncache
  1477   fncache
  1374   generaldelta
  1478   generaldelta