mercurial/revlog.py
changeset 47393 7a0ec25d5836
parent 47391 33d626910374
child 47394 ac60a1366a49
equal deleted inserted replaced
47392:8089d0fa8400 47393:7a0ec25d5836
   308     `concurrencychecker` is an optional function that receives 3 arguments: a
   308     `concurrencychecker` is an optional function that receives 3 arguments: a
   309     file handle, a filename, and an expected position. It should check whether
   309     file handle, a filename, and an expected position. It should check whether
   310     the current position in the file handle is valid, and log/warn/fail (by
   310     the current position in the file handle is valid, and log/warn/fail (by
   311     raising).
   311     raising).
   312 
   312 
   313 
   313     See mercurial/revlogutils/contants.py for details about the content of an
   314     Internal details
   314     index entry.
   315     ----------------
       
   316 
       
   317     A large part of the revlog logic deals with revisions' "index entries", tuple
       
   318     objects that contains the same "items" whatever the revlog version.
       
   319     Different versions will have different ways of storing these items (sometimes
       
   320     not having them at all), but the tuple will always be the same. New fields
       
   321     are usually added at the end to avoid breaking existing code that relies
       
   322     on the existing order. The field are defined as follows:
       
   323 
       
   324     [0] offset:
       
   325             The byte index of the start of revision data chunk.
       
   326             That value is shifted up by 16 bits. use "offset = field >> 16" to
       
   327             retrieve it.
       
   328 
       
   329         flags:
       
   330             A flag field that carries special information or changes the behavior
       
   331             of the revision. (see `REVIDX_*` constants for details)
       
   332             The flag field only occupies the first 16 bits of this field,
       
   333             use "flags = field & 0xFFFF" to retrieve the value.
       
   334 
       
   335     [1] compressed length:
       
   336             The size, in bytes, of the chunk on disk
       
   337 
       
   338     [2] uncompressed length:
       
   339             The size, in bytes, of the full revision once reconstructed.
       
   340 
       
   341     [3] base rev:
       
   342             Either the base of the revision delta chain (without general
       
   343             delta), or the base of the delta (stored in the data chunk)
       
   344             with general delta.
       
   345 
       
   346     [4] link rev:
       
   347             Changelog revision number of the changeset introducing this
       
   348             revision.
       
   349 
       
   350     [5] parent 1 rev:
       
   351             Revision number of the first parent
       
   352 
       
   353     [6] parent 2 rev:
       
   354             Revision number of the second parent
       
   355 
       
   356     [7] node id:
       
   357             The node id of the current revision
       
   358 
       
   359     [8] sidedata offset:
       
   360             The byte index of the start of the revision's side-data chunk.
       
   361 
       
   362     [9] sidedata chunk length:
       
   363             The size, in bytes, of the revision's side-data chunk.
       
   364 
       
   365     [10] data compression mode:
       
   366             two bits that detail the way the data chunk is compressed on disk.
       
   367             (see "COMP_MODE_*" constants for details). For revlog version 0 and
       
   368             1 this will always be COMP_MODE_INLINE.
       
   369 
       
   370     [11] side-data compression mode:
       
   371             two bits that detail the way the sidedata chunk is compressed on disk.
       
   372             (see "COMP_MODE_*" constants for details)
       
   373     """
   315     """
   374 
   316 
   375     _flagserrorclass = error.RevlogError
   317     _flagserrorclass = error.RevlogError
   376 
   318 
   377     def __init__(
   319     def __init__(