comparison mercurial/context.py @ 19605:cf7322cb1c13

basefilectx: move parents from filectx
author Sean Farley <sean.michael.farley@gmail.com>
date Sun, 11 Aug 2013 22:57:21 -0500
parents ef7c47e4002f
children 284f91230c07
comparison
equal deleted inserted replaced
19604:ef7c47e4002f 19605:cf7322cb1c13
536 or self.size() == fctx.size()): 536 or self.size() == fctx.size()):
537 return self._filelog.cmp(self._filenode, fctx.data()) 537 return self._filelog.cmp(self._filenode, fctx.data())
538 538
539 return True 539 return True
540 540
541 def parents(self):
542 p = self._path
543 fl = self._filelog
544 pl = [(p, n, fl) for n in self._filelog.parents(self._filenode)]
545
546 r = self._filelog.renamed(self._filenode)
547 if r:
548 pl[0] = (r[0], r[1], None)
549
550 return [filectx(self._repo, p, fileid=n, filelog=l)
551 for p, n, l in pl if n != nullid]
552
541 class filectx(basefilectx): 553 class filectx(basefilectx):
542 """A filecontext object makes access to data related to a particular 554 """A filecontext object makes access to data related to a particular
543 filerevision convenient.""" 555 filerevision convenient."""
544 def __init__(self, repo, path, changeid=None, fileid=None, 556 def __init__(self, repo, path, changeid=None, fileid=None,
545 filelog=None, changectx=None): 557 filelog=None, changectx=None):
620 if fnode == p.filenode(name): 632 if fnode == p.filenode(name):
621 return None 633 return None
622 except error.LookupError: 634 except error.LookupError:
623 pass 635 pass
624 return renamed 636 return renamed
625
626 def parents(self):
627 p = self._path
628 fl = self._filelog
629 pl = [(p, n, fl) for n in self._filelog.parents(self._filenode)]
630
631 r = self._filelog.renamed(self._filenode)
632 if r:
633 pl[0] = (r[0], r[1], None)
634
635 return [filectx(self._repo, p, fileid=n, filelog=l)
636 for p, n, l in pl if n != nullid]
637 637
638 def p1(self): 638 def p1(self):
639 return self.parents()[0] 639 return self.parents()[0]
640 640
641 def p2(self): 641 def p2(self):