Mercurial > hg
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 |