comparison mercurial/obsolete.py @ 33148:4e30168d7939

obsutil: move the 'marker' class to the new modules We have a new 'obsutil' module now. We move high level utility there to bring 'obsolete.py' back to a more reasonable size.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 27 Jun 2017 01:51:40 +0200
parents 07439e9f245b
children a14e2e7f7d1f
comparison
equal deleted inserted replaced
33147:07439e9f245b 33148:4e30168d7939
463 if addheader: 463 if addheader:
464 yield encodeheader(version) 464 yield encodeheader(version)
465 for marker in markers: 465 for marker in markers:
466 yield encodeone(marker) 466 yield encodeone(marker)
467 467
468
469 class marker(object):
470 """Wrap obsolete marker raw data"""
471
472 def __init__(self, repo, data):
473 # the repo argument will be used to create changectx in later version
474 self._repo = repo
475 self._data = data
476 self._decodedmeta = None
477
478 def __hash__(self):
479 return hash(self._data)
480
481 def __eq__(self, other):
482 if type(other) != type(self):
483 return False
484 return self._data == other._data
485
486 def precnode(self):
487 """Precursor changeset node identifier"""
488 return self._data[0]
489
490 def succnodes(self):
491 """List of successor changesets node identifiers"""
492 return self._data[1]
493
494 def parentnodes(self):
495 """Parents of the precursors (None if not recorded)"""
496 return self._data[5]
497
498 def metadata(self):
499 """Decoded metadata dictionary"""
500 return dict(self._data[3])
501
502 def date(self):
503 """Creation date as (unixtime, offset)"""
504 return self._data[4]
505
506 def flags(self):
507 """The flags field of the marker"""
508 return self._data[2]
509
510 @util.nogc 468 @util.nogc
511 def _addsuccessors(successors, markers): 469 def _addsuccessors(successors, markers):
512 for mark in markers: 470 for mark in markers:
513 successors.setdefault(mark[0], set()).add(mark) 471 successors.setdefault(mark[0], set()).add(mark)
514 472
849 rawmarkers = obsutil.exclusivemarkers(repo, nodes) 807 rawmarkers = obsutil.exclusivemarkers(repo, nodes)
850 else: 808 else:
851 rawmarkers = repo.obsstore.relevantmarkers(nodes) 809 rawmarkers = repo.obsstore.relevantmarkers(nodes)
852 810
853 for markerdata in rawmarkers: 811 for markerdata in rawmarkers:
854 yield marker(repo, markerdata) 812 yield obsutil.marker(repo, markerdata)
855 813
856 # keep compatibility for the 4.3 cycle 814 # keep compatibility for the 4.3 cycle
857 def allprecursors(obsstore, nodes, ignoreflags=0): 815 def allprecursors(obsstore, nodes, ignoreflags=0):
858 movemsg = 'obsolete.allprecursors moved to obsutil.allprecursors' 816 movemsg = 'obsolete.allprecursors moved to obsutil.allprecursors'
859 util.nouideprecwarn(movemsg, '4.3') 817 util.nouideprecwarn(movemsg, '4.3')
861 819
862 def allsuccessors(obsstore, nodes, ignoreflags=0): 820 def allsuccessors(obsstore, nodes, ignoreflags=0):
863 movemsg = 'obsolete.allsuccessors moved to obsutil.allsuccessors' 821 movemsg = 'obsolete.allsuccessors moved to obsutil.allsuccessors'
864 util.nouideprecwarn(movemsg, '4.3') 822 util.nouideprecwarn(movemsg, '4.3')
865 return obsutil.allsuccessors(obsstore, nodes, ignoreflags) 823 return obsutil.allsuccessors(obsstore, nodes, ignoreflags)
824
825 def marker(repo, data):
826 movemsg = 'obsolete.marker moved to obsutil.marker'
827 repo.ui.deprecwarn(movemsg, '4.3')
828 return obsutil.marker(repo, data)
866 829
867 def exclusivemarkers(repo, nodes): 830 def exclusivemarkers(repo, nodes):
868 movemsg = 'obsolete.exclusivemarkers moved to obsutil.exclusivemarkers' 831 movemsg = 'obsolete.exclusivemarkers moved to obsutil.exclusivemarkers'
869 repo.ui.deprecwarn(movemsg, '4.3') 832 repo.ui.deprecwarn(movemsg, '4.3')
870 return obsutil.exclusivemarkers(repo, nodes) 833 return obsutil.exclusivemarkers(repo, nodes)