comparison mercurial/upgrade.py @ 43135:6e3dc1eff5c7

upgrade: allow for `sidedata` removal If the side-date feature is removed, we need to drop them. Differential Revision: https://phab.mercurial-scm.org/D6943
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 06 Oct 2019 23:36:51 -0400
parents 75ad8af9c95e
children f9dc98a97cdb
comparison
equal deleted inserted replaced
43134:75ad8af9c95e 43135:6e3dc1eff5c7
74 the dropped requirement must appear in the returned set for the upgrade 74 the dropped requirement must appear in the returned set for the upgrade
75 to be allowed. 75 to be allowed.
76 """ 76 """
77 supported = { 77 supported = {
78 localrepo.SPARSEREVLOG_REQUIREMENT, 78 localrepo.SPARSEREVLOG_REQUIREMENT,
79 localrepo.SIDEDATA_REQUIREMENT,
79 } 80 }
80 for name in compression.compengines: 81 for name in compression.compengines:
81 engine = compression.compengines[name] 82 engine = compression.compengines[name]
82 if engine.available() and engine.revlogheader(): 83 if engine.available() and engine.revlogheader():
83 supported.add(b'exp-compression-%s' % name) 84 supported.add(b'exp-compression-%s' % name)
677 UPGRADE_ALL_REVLOGS = frozenset( 678 UPGRADE_ALL_REVLOGS = frozenset(
678 [UPGRADE_CHANGELOG, UPGRADE_MANIFEST, UPGRADE_FILELOG] 679 [UPGRADE_CHANGELOG, UPGRADE_MANIFEST, UPGRADE_FILELOG]
679 ) 680 )
680 681
681 682
682 def getsidedatacompanion(srcrepo, destrepo): 683 def getsidedatacompanion(srcrepo, dstrepo):
683 return None 684 sidedatacompanion = None
685 removedreqs = srcrepo.requirements - dstrepo.requirements
686 if localrepo.SIDEDATA_REQUIREMENT in removedreqs:
687
688 def sidedatacompanion(rl, rev):
689 rl = getattr(rl, '_revlog', rl)
690 if rl.flags(rev) & revlog.REVIDX_SIDEDATA:
691 return True, (), {}
692 return False, (), {}
693
694 return sidedatacompanion
684 695
685 696
686 def matchrevlog(revlogfilter, entry): 697 def matchrevlog(revlogfilter, entry):
687 """check is a revlog is selected for cloning 698 """check is a revlog is selected for cloning
688 699