mercurial/phases.py
changeset 51424 3cee8706f53b
parent 51423 23950e39281f
child 51505 c9ceb4f60256
equal deleted inserted replaced
51423:23950e39281f 51424:3cee8706f53b
   767 
   767 
   768         # apply the changes
   768         # apply the changes
   769         if not dryrun:
   769         if not dryrun:
   770             for r, p in changed.items():
   770             for r, p in changed.items():
   771                 _trackphasechange(phasetracking, r, p, targetphase)
   771                 _trackphasechange(phasetracking, r, p, targetphase)
       
   772             if targetphase > public:
       
   773                 self._phasesets[targetphase].update(changed)
   772             for phase in affectable_phases:
   774             for phase in affectable_phases:
   773                 roots = self._phaseroots[phase]
   775                 roots = self._phaseroots[phase]
   774                 removed = roots & delroots
   776                 removed = roots & delroots
   775                 if removed or new_roots[phase]:
   777                 if removed or new_roots[phase]:
       
   778                     self._phasesets[phase].difference_update(changed)
   776                     # Be careful to preserve shallow-copied values: do not
   779                     # Be careful to preserve shallow-copied values: do not
   777                     # update phaseroots values, replace them.
   780                     # update phaseroots values, replace them.
   778                     final_roots = roots - delroots | new_roots[phase]
   781                     final_roots = roots - delroots | new_roots[phase]
   779                     self._updateroots(repo, phase, final_roots, tr)
   782                     self._updateroots(
       
   783                         repo, phase, final_roots, tr, invalidate=False
       
   784                     )
   780             if new_target_roots:
   785             if new_target_roots:
   781                 # Thanks for previous filtering, we can't replace existing
   786                 # Thanks for previous filtering, we can't replace existing
   782                 # roots
   787                 # roots
   783                 new_target_roots |= self._phaseroots[targetphase]
   788                 new_target_roots |= self._phaseroots[targetphase]
   784                 self._updateroots(repo, targetphase, new_target_roots, tr)
   789                 self._updateroots(
       
   790                     repo, targetphase, new_target_roots, tr, invalidate=False
       
   791                 )
   785             repo.invalidatevolatilesets()
   792             repo.invalidatevolatilesets()
   786         return changed
   793         return changed
   787 
   794 
   788     def retractboundary(self, repo, tr, targetphase, nodes):
   795     def retractboundary(self, repo, tr, targetphase, nodes):
   789         if tr is None:
   796         if tr is None: