mercurial/filelog.py
changeset 19148 3bda242bf244
parent 14287 7c231754a621
child 22420 4669e26747c3
equal deleted inserted replaced
19147:5b1835485442 19148:3bda242bf244
    29         keys = sorted(meta.iterkeys())
    29         keys = sorted(meta.iterkeys())
    30     return "".join("%s: %s\n" % (k, meta[k]) for k in keys)
    30     return "".join("%s: %s\n" % (k, meta[k]) for k in keys)
    31 
    31 
    32 class filelog(revlog.revlog):
    32 class filelog(revlog.revlog):
    33     def __init__(self, opener, path):
    33     def __init__(self, opener, path):
    34         revlog.revlog.__init__(self, opener,
    34         super(filelog, self).__init__(opener,
    35                         "/".join(("data", path + ".i")))
    35                         "/".join(("data", path + ".i")))
    36 
    36 
    37     def read(self, node):
    37     def read(self, node):
    38         t = self.revision(node)
    38         t = self.revision(node)
    39         if not t.startswith('\1\n'):
    39         if not t.startswith('\1\n'):
    62         node = self.node(rev)
    62         node = self.node(rev)
    63         if self.renamed(node):
    63         if self.renamed(node):
    64             return len(self.read(node))
    64             return len(self.read(node))
    65 
    65 
    66         # XXX if self.read(node).startswith("\1\n"), this returns (size+4)
    66         # XXX if self.read(node).startswith("\1\n"), this returns (size+4)
    67         return revlog.revlog.size(self, rev)
    67         return super(filelog, self).size(rev)
    68 
    68 
    69     def cmp(self, node, text):
    69     def cmp(self, node, text):
    70         """compare text with a given file revision
    70         """compare text with a given file revision
    71 
    71 
    72         returns True if text is different than what is stored.
    72         returns True if text is different than what is stored.
    74 
    74 
    75         t = text
    75         t = text
    76         if text.startswith('\1\n'):
    76         if text.startswith('\1\n'):
    77             t = '\1\n\1\n' + text
    77             t = '\1\n\1\n' + text
    78 
    78 
    79         samehashes = not revlog.revlog.cmp(self, node, t)
    79         samehashes = not super(filelog, self).cmp(node, t)
    80         if samehashes:
    80         if samehashes:
    81             return False
    81             return False
    82 
    82 
    83         # renaming a file produces a different hash, even if the data
    83         # renaming a file produces a different hash, even if the data
    84         # remains unchanged. Check if it's the case (slow):
    84         # remains unchanged. Check if it's the case (slow):