mercurial/help/internals/revlogs.txt
changeset 30827 e997e4826459
parent 30746 9cb0bb0f29f0
child 30828 0b792507ea15
equal deleted inserted replaced
30826:923336cf8b8a 30827:e997e4826459
    83 Each index entry is 64 bytes. The byte layout of each entry is as
    83 Each index entry is 64 bytes. The byte layout of each entry is as
    84 follows, with byte 0 being the first byte (all data stored as big endian):
    84 follows, with byte 0 being the first byte (all data stored as big endian):
    85 
    85 
    86 0-3 (4 bytes) (rev 0 only)
    86 0-3 (4 bytes) (rev 0 only)
    87    Revlog header
    87    Revlog header
       
    88 
    88 0-5 (6 bytes)
    89 0-5 (6 bytes)
    89    Absolute offset of revision data from beginning of revlog.
    90    Absolute offset of revision data from beginning of revlog.
       
    91 
    90 6-7 (2 bytes)
    92 6-7 (2 bytes)
    91    Bit flags impacting revision behavior. The following bit offsets define:
    93    Bit flags impacting revision behavior. The following bit offsets define:
    92    0: REVIDX_ISCENSORED revision has censor metadata, must be verified.
    94    0: REVIDX_ISCENSORED revision has censor metadata, must be verified.
    93    1: REVIDX_EXTSTORED revision data is stored externally.
    95    1: REVIDX_EXTSTORED revision data is stored externally.
       
    96 
    94 8-11 (4 bytes)
    97 8-11 (4 bytes)
    95    Compressed length of revision data / chunk as stored in revlog.
    98    Compressed length of revision data / chunk as stored in revlog.
       
    99 
    96 12-15 (4 bytes)
   100 12-15 (4 bytes)
    97    Uncompressed length of revision data. This is the size of the full
   101    Uncompressed length of revision data. This is the size of the full
    98    revision data, not the size of the chunk post decompression.
   102    revision data, not the size of the chunk post decompression.
       
   103 
    99 16-19 (4 bytes)
   104 16-19 (4 bytes)
   100    Base or previous revision this revision's delta was produced against.
   105    Base or previous revision this revision's delta was produced against.
   101    -1 means this revision holds full text (as opposed to a delta).
   106    -1 means this revision holds full text (as opposed to a delta).
   102    For generaldelta repos, this is the previous revision in the delta
   107    For generaldelta repos, this is the previous revision in the delta
   103    chain. For non-generaldelta repos, this is the base or first
   108    chain. For non-generaldelta repos, this is the base or first
   104    revision in the delta chain.
   109    revision in the delta chain.
       
   110 
   105 20-23 (4 bytes)
   111 20-23 (4 bytes)
   106    A revision this revision is *linked* to. This allows a revision in
   112    A revision this revision is *linked* to. This allows a revision in
   107    one revlog to be forever associated with a revision in another
   113    one revlog to be forever associated with a revision in another
   108    revlog. For example, a file's revlog may point to the changelog
   114    revlog. For example, a file's revlog may point to the changelog
   109    revision that introduced it.
   115    revision that introduced it.
       
   116 
   110 24-27 (4 bytes)
   117 24-27 (4 bytes)
   111    Revision of 1st parent. -1 indicates no parent.
   118    Revision of 1st parent. -1 indicates no parent.
       
   119 
   112 28-31 (4 bytes)
   120 28-31 (4 bytes)
   113    Revision of 2nd parent. -1 indicates no 2nd parent.
   121    Revision of 2nd parent. -1 indicates no 2nd parent.
       
   122 
   114 32-63 (32 bytes)
   123 32-63 (32 bytes)
   115    Hash of revision's full text. Currently, SHA-1 is used and only
   124    Hash of revision's full text. Currently, SHA-1 is used and only
   116    the first 20 bytes of this field are used. The rest of the bytes
   125    the first 20 bytes of this field are used. The rest of the bytes
   117    are ignored and should be stored as \0.
   126    are ignored and should be stored as \0.
   118 
   127