##// END OF EJS Templates
obsolete: extract helpers from _load()...
Martin von Zweigbergk -
r24044:e0e6dd80 default
parent child Browse files
Show More
@@ -470,6 +470,25 class marker(object):
470 """The flags field of the marker"""
470 """The flags field of the marker"""
471 return self._data[2]
471 return self._data[2]
472
472
473 @util.nogc
474 def _addsuccessors(successors, markers):
475 for mark in markers:
476 successors.setdefault(mark[0], set()).add(mark)
477
478 @util.nogc
479 def _addprecursors(precursors, markers):
480 for mark in markers:
481 for suc in mark[1]:
482 precursors.setdefault(suc, set()).add(mark)
483
484 @util.nogc
485 def _addchildren(children, markers):
486 for mark in markers:
487 parents = mark[5]
488 if parents is not None:
489 for p in parents:
490 children.setdefault(p, set()).add(mark)
491
473 def _checkinvalidmarkers(obsstore):
492 def _checkinvalidmarkers(obsstore):
474 """search for marker with invalid data and raise error if needed
493 """search for marker with invalid data and raise error if needed
475
494
@@ -604,18 +623,12 class obsstore(object):
604 version, markers = _readmarkers(data)
623 version, markers = _readmarkers(data)
605 return self.add(transaction, markers)
624 return self.add(transaction, markers)
606
625
607 @util.nogc
608 def _load(self, markers):
626 def _load(self, markers):
609 for mark in markers:
627 markers = list(markers) # to allow repeated iteration
610 self._all.append(mark)
628 self._all.extend(markers)
611 pre, sucs = mark[:2]
629 _addsuccessors(self.successors, markers)
612 self.successors.setdefault(pre, set()).add(mark)
630 _addprecursors(self.precursors, markers)
613 for suc in sucs:
631 _addchildren(self.children, markers)
614 self.precursors.setdefault(suc, set()).add(mark)
615 parents = mark[5]
616 if parents is not None:
617 for p in parents:
618 self.children.setdefault(p, set()).add(mark)
619 _checkinvalidmarkers(self)
632 _checkinvalidmarkers(self)
620
633
621 def relevantmarkers(self, nodes):
634 def relevantmarkers(self, nodes):
General Comments 0
You need to be logged in to leave comments. Login now