mercurial/tags.py
changeset 46652 75832107ec07
parent 46495 5aac1a1a5beb
child 46656 9a31f65381ae
equal deleted inserted replaced
46651:6fc57680cfd6 46652:75832107ec07
   775         if not computemissing:
   775         if not computemissing:
   776             if record != _fnodesmissingrec:
   776             if record != _fnodesmissingrec:
   777                 return False
   777                 return False
   778             return None
   778             return None
   779 
   779 
       
   780         fnode = self._computefnode(node)
       
   781         self._writeentry(offset, properprefix, fnode)
       
   782         return fnode
       
   783 
       
   784     def _computefnode(self, node):
       
   785         """Finds the tag filenode for a node which is missing or invalid
       
   786         in cache"""
       
   787         ctx = self._repo[node]
       
   788         rev = ctx.rev()
   780         fnode = None
   789         fnode = None
   781         cl = self._repo.changelog
   790         cl = self._repo.changelog
   782         p1rev, p2rev = cl._uncheckedparentrevs(rev)
   791         p1rev, p2rev = cl._uncheckedparentrevs(rev)
   783         p1node = cl.node(p1rev)
   792         p1node = cl.node(p1rev)
   784         p1fnode = self.getfnode(p1node, computemissing=False)
   793         p1fnode = self.getfnode(p1node, computemissing=False)
   802             try:
   811             try:
   803                 fnode = ctx.filenode(b'.hgtags')
   812                 fnode = ctx.filenode(b'.hgtags')
   804             except error.LookupError:
   813             except error.LookupError:
   805                 # No .hgtags file on this revision.
   814                 # No .hgtags file on this revision.
   806                 fnode = nullid
   815                 fnode = nullid
   807 
       
   808         self._writeentry(offset, properprefix, fnode)
       
   809         return fnode
   816         return fnode
   810 
   817 
   811     def setfnode(self, node, fnode):
   818     def setfnode(self, node, fnode):
   812         """Set the .hgtags filenode for a given changeset."""
   819         """Set the .hgtags filenode for a given changeset."""
   813         assert len(fnode) == 20
   820         assert len(fnode) == 20