mercurial/revlog.py
changeset 29339 a9e010cd66e1
parent 27650 e7222d326ea2
child 29396 d0ae5b8f80dc
equal deleted inserted replaced
29338:81c38cb9c1a1 29339:a9e010cd66e1
    13 
    13 
    14 from __future__ import absolute_import
    14 from __future__ import absolute_import
    15 
    15 
    16 import collections
    16 import collections
    17 import errno
    17 import errno
       
    18 import hashlib
    18 import os
    19 import os
    19 import struct
    20 import struct
    20 import zlib
    21 import zlib
    21 
    22 
    22 # import stuff from node for others to import from revlog
    23 # import stuff from node for others to import from revlog
    38 
    39 
    39 _pack = struct.pack
    40 _pack = struct.pack
    40 _unpack = struct.unpack
    41 _unpack = struct.unpack
    41 _compress = zlib.compress
    42 _compress = zlib.compress
    42 _decompress = zlib.decompress
    43 _decompress = zlib.decompress
    43 _sha = util.sha1
       
    44 
    44 
    45 # revlog header flags
    45 # revlog header flags
    46 REVLOGV0 = 0
    46 REVLOGV0 = 0
    47 REVLOGNG = 1
    47 REVLOGNG = 1
    48 REVLOGNGINLINEDATA = (1 << 16)
    48 REVLOGNGINLINEDATA = (1 << 16)
    72     return int(q & 0xFFFF)
    72     return int(q & 0xFFFF)
    73 
    73 
    74 def offset_type(offset, type):
    74 def offset_type(offset, type):
    75     return long(long(offset) << 16 | type)
    75     return long(long(offset) << 16 | type)
    76 
    76 
    77 _nullhash = _sha(nullid)
    77 _nullhash = hashlib.sha1(nullid)
    78 
    78 
    79 def hash(text, p1, p2):
    79 def hash(text, p1, p2):
    80     """generate a hash from the given text and its parent hashes
    80     """generate a hash from the given text and its parent hashes
    81 
    81 
    82     This hash combines both the current file contents and its history
    82     This hash combines both the current file contents and its history
    90         s.update(p1)
    90         s.update(p1)
    91     else:
    91     else:
    92         # none of the parent nodes are nullid
    92         # none of the parent nodes are nullid
    93         l = [p1, p2]
    93         l = [p1, p2]
    94         l.sort()
    94         l.sort()
    95         s = _sha(l[0])
    95         s = hashlib.sha1(l[0])
    96         s.update(l[1])
    96         s.update(l[1])
    97     s.update(text)
    97     s.update(text)
    98     return s.digest()
    98     return s.digest()
    99 
    99 
   100 def decompress(bin):
   100 def decompress(bin):