# HG changeset patch # User Pierre-Yves David # Date 1491858705 -7200 # Node ID fa1088de211918db76c88afefb510cacddd0804a # Parent 6557f0d4ab8e9f700ce09e7964a5ba6c077543f9 upgrade: use 'improvement' object for action too This simplify multiple pieces of code. For now we restrict this upgrade to the top level function to keep this patch simple. diff -r 6557f0d4ab8e -r fa1088de2119 mercurial/upgrade.py --- a/mercurial/upgrade.py Mon Apr 10 23:10:03 2017 +0200 +++ b/mercurial/upgrade.py Mon Apr 10 23:11:45 2017 +0200 @@ -292,7 +292,7 @@ if name in knownreqs and name not in destreqs: continue - newactions.append(name) + newactions.append(d) # FUTURE consider adding some optimizations here for certain transitions. # e.g. adding generaldelta could schedule parent redeltas. @@ -639,11 +639,10 @@ 'optimizations')) deficiencies = finddeficiencies(repo) - improvements = deficiencies + optimizations actions = determineactions(repo, deficiencies, repo.requirements, newreqs) - actions.extend(o.name for o in sorted(optimizations) + actions.extend(o for o in sorted(optimizations) # determineactions could have added optimisation - if o.name not in actions) + if o not in actions) def printrequirements(): ui.write(_('requirements\n')) @@ -661,11 +660,8 @@ ui.write('\n') def printupgradeactions(): - for action in actions: - for i in improvements: - if i.name == action: - ui.write('%s\n %s\n\n' % - (i.name, i.upgrademessage)) + for a in actions: + ui.write('%s\n %s\n\n' % (a.name, a.upgrademessage)) if not run: fromdefault = [] @@ -705,8 +701,8 @@ printrequirements() printupgradeactions() - unusedoptimize = [i for i in alloptimizations - if i.name not in actions] + unusedoptimize = [i for i in alloptimizations if i not in actions] + if unusedoptimize: ui.write(_('additional optimizations are available by specifying ' '"--optimize ":\n\n')) @@ -719,6 +715,8 @@ printrequirements() printupgradeactions() + upgradeactions = [a.name for a in actions] + ui.write(_('beginning upgrade...\n')) with repo.wlock(): with repo.lock(): @@ -740,7 +738,7 @@ with dstrepo.wlock(): with dstrepo.lock(): backuppath = _upgraderepo(ui, repo, dstrepo, newreqs, - actions) + upgradeactions) finally: ui.write(_('removing temporary repository %s\n') % tmppath)