mercurial/revlog.py
changeset 16375 d7d64b89a65c
parent 16374 29c2ff719715
child 16414 e8d37b78acfb
equal deleted inserted replaced
16374:29c2ff719715 16375:d7d64b89a65c
   856             return self._chunk(rev2)
   856             return self._chunk(rev2)
   857 
   857 
   858         return mdiff.textdiff(self.revision(self.node(rev1)),
   858         return mdiff.textdiff(self.revision(self.node(rev1)),
   859                               self.revision(self.node(rev2)))
   859                               self.revision(self.node(rev2)))
   860 
   860 
   861     def revision(self, node):
   861     def revision(self, nodeorrev):
   862         """return an uncompressed revision of a given node"""
   862         """return an uncompressed revision of a given node or"""
       
   863         if isinstance(nodeorrev, int):
       
   864             rev = nodeorrev
       
   865             node = self.node(rev)
       
   866         else:
       
   867             node = nodeorrev
       
   868             rev = None
       
   869 
   863         cachedrev = None
   870         cachedrev = None
   864         if node == nullid:
   871         if node == nullid:
   865             return ""
   872             return ""
   866         if self._cache:
   873         if self._cache:
   867             if self._cache[0] == node:
   874             if self._cache[0] == node:
   868                 return self._cache[2]
   875                 return self._cache[2]
   869             cachedrev = self._cache[1]
   876             cachedrev = self._cache[1]
   870 
   877 
   871         # look up what we need to read
   878         # look up what we need to read
   872         text = None
   879         text = None
   873         rev = self.rev(node)
   880         if rev is None:
       
   881             rev = self.rev(node)
   874 
   882 
   875         # check rev flags
   883         # check rev flags
   876         if self.flags(rev) & ~REVIDX_KNOWN_FLAGS:
   884         if self.flags(rev) & ~REVIDX_KNOWN_FLAGS:
   877             raise RevlogError(_('incompatible revision flag %x') %
   885             raise RevlogError(_('incompatible revision flag %x') %
   878                               (self.flags(rev) & ~REVIDX_KNOWN_FLAGS))
   886                               (self.flags(rev) & ~REVIDX_KNOWN_FLAGS))