diff mercurial/upgrade.py @ 42841:908ff446590e

upgrade: add an argument to control changelog upgrade Same as for `--manifest` we can now select more selection.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 30 Jul 2019 17:25:16 +0200
parents cf2b765cecd7
children a3c2ffcd266f
line wrap: on
line diff
--- a/mercurial/upgrade.py	Tue Jul 30 00:35:52 2019 +0200
+++ b/mercurial/upgrade.py	Tue Jul 30 17:25:16 2019 +0200
@@ -865,7 +865,7 @@
     return backuppath
 
 def upgraderepo(ui, repo, run=False, optimize=None, backup=True,
-                manifest=None):
+                manifest=None, changelog=None):
     """Upgrade a repository in place."""
     if optimize is None:
         optimize = []
@@ -873,7 +873,7 @@
     repo = repo.unfiltered()
 
     revlogs = set(UPGRADE_ALL_REVLOGS)
-    specentries = (('m', manifest),)
+    specentries = (('c', changelog), ('m', manifest))
     specified = [(y, x) for (y, x) in specentries if x is not None]
     if specified:
         # we have some limitation on revlogs to be recloned
@@ -881,12 +881,16 @@
             revlogs = set()
             for r, enabled in specified:
                 if enabled:
-                    if r == 'm':
+                    if r == 'c':
+                        revlogs.add(UPGRADE_CHANGELOG)
+                    elif r == 'm':
                         revlogs.add(UPGRADE_MANIFEST)
         else:
             # none are enabled
             for r, __ in specified:
-                if r == 'm':
+                if r == 'c':
+                    revlogs.discard(UPGRADE_CHANGELOG)
+                elif r == 'm':
                     revlogs.discard(UPGRADE_MANIFEST)
 
     # Ensure the repository can be upgraded.