mercurial/pure/parsers.py
changeset 47037 d57386e5c80e
parent 47034 0d8ff1f4ab0c
child 47078 223b47235d1c
equal deleted inserted replaced
47036:5e64c93d5f94 47037:d57386e5c80e
   125         r = self.index_format.unpack(data)
   125         r = self.index_format.unpack(data)
   126         if self._lgt and i == 0:
   126         if self._lgt and i == 0:
   127             r = (offset_type(0, gettype(r[0])),) + r[1:]
   127             r = (offset_type(0, gettype(r[0])),) + r[1:]
   128         return r
   128         return r
   129 
   129 
   130     def entry_binary(self, rev, header):
   130     def pack_header(self, header):
       
   131         """pack header information as binary"""
       
   132         v_fmt = revlog_constants.INDEX_HEADER
       
   133         return v_fmt.pack(header)
       
   134 
       
   135     def entry_binary(self, rev):
   131         """return the raw binary string representing a revision"""
   136         """return the raw binary string representing a revision"""
   132         entry = self[rev]
   137         entry = self[rev]
   133         p = revlog_constants.INDEX_ENTRY_V1.pack(*entry)
   138         p = revlog_constants.INDEX_ENTRY_V1.pack(*entry)
   134         if rev == 0:
   139         if rev == 0:
   135             v_fmt = revlog_constants.INDEX_HEADER
   140             p = p[revlog_constants.INDEX_HEADER.size :]
   136             v_bin = v_fmt.pack(header)
       
   137             p = v_bin + p[v_fmt.size :]
       
   138         return p
   141         return p
   139 
   142 
   140 
   143 
   141 class IndexObject(BaseIndexObject):
   144 class IndexObject(BaseIndexObject):
   142     def __init__(self, data):
   145     def __init__(self, data):
   284             self._extra[i - self._lgt] = new
   287             self._extra[i - self._lgt] = new
   285         else:
   288         else:
   286             msg = b"cannot rewrite entries outside of this transaction"
   289             msg = b"cannot rewrite entries outside of this transaction"
   287             raise KeyError(msg)
   290             raise KeyError(msg)
   288 
   291 
   289     def entry_binary(self, rev, header):
   292     def entry_binary(self, rev):
   290         """return the raw binary string representing a revision"""
   293         """return the raw binary string representing a revision"""
   291         entry = self[rev]
   294         entry = self[rev]
   292         p = revlog_constants.INDEX_ENTRY_V2.pack(*entry)
   295         p = revlog_constants.INDEX_ENTRY_V2.pack(*entry)
   293         if rev == 0:
   296         if rev == 0:
   294             v_fmt = revlog_constants.INDEX_HEADER
   297             p = p[revlog_constants.INDEX_HEADER.size :]
   295             v_bin = v_fmt.pack(header)
       
   296             p = v_bin + p[v_fmt.size :]
       
   297         return p
   298         return p
   298 
   299 
   299 
   300 
   300 class IndexObject2(Index2Mixin, IndexObject):
   301 class IndexObject2(Index2Mixin, IndexObject):
   301     pass
   302     pass