tests/test-revlog-v2.t
changeset 32697 19b9fc40cc51
child 36485 351323217fd3
equal deleted inserted replaced
32696:0c09afdf5704 32697:19b9fc40cc51
       
     1 A repo with unknown revlogv2 requirement string cannot be opened
       
     2 
       
     3   $ hg init invalidreq
       
     4   $ cd invalidreq
       
     5   $ echo exp-revlogv2.unknown >> .hg/requires
       
     6   $ hg log
       
     7   abort: repository requires features unknown to this Mercurial: exp-revlogv2.unknown!
       
     8   (see https://mercurial-scm.org/wiki/MissingRequirement for more information)
       
     9   [255]
       
    10   $ cd ..
       
    11 
       
    12 Can create and open repo with revlog v2 requirement
       
    13 
       
    14   $ cat >> $HGRCPATH << EOF
       
    15   > [experimental]
       
    16   > revlogv2 = enable-unstable-format-and-corrupt-my-data
       
    17   > EOF
       
    18 
       
    19   $ hg init empty-repo
       
    20   $ cd empty-repo
       
    21   $ cat .hg/requires
       
    22   dotencode
       
    23   exp-revlogv2.0
       
    24   fncache
       
    25   store
       
    26 
       
    27   $ hg log
       
    28 
       
    29 Unknown flags to revlog are rejected
       
    30 
       
    31   >>> with open('.hg/store/00changelog.i', 'wb') as fh:
       
    32   ...     fh.write('\x00\x04\xde\xad')
       
    33 
       
    34   $ hg log
       
    35   abort: unknown flags (0x04) in version 57005 revlog 00changelog.i!
       
    36   [255]
       
    37 
       
    38   $ cd ..
       
    39 
       
    40 Writing a simple revlog v2 works
       
    41 
       
    42   $ hg init simple
       
    43   $ cd simple
       
    44   $ touch foo
       
    45   $ hg -q commit -A -m initial
       
    46 
       
    47   $ hg log
       
    48   changeset:   0:96ee1d7354c4
       
    49   tag:         tip
       
    50   user:        test
       
    51   date:        Thu Jan 01 00:00:00 1970 +0000
       
    52   summary:     initial
       
    53   
       
    54 Header written as expected (changelog always disables generaldelta)
       
    55 
       
    56   $ f --hexdump --bytes 4 .hg/store/00changelog.i
       
    57   .hg/store/00changelog.i:
       
    58   0000: 00 01 de ad                                     |....|
       
    59 
       
    60   $ f --hexdump --bytes 4 .hg/store/data/foo.i
       
    61   .hg/store/data/foo.i:
       
    62   0000: 00 03 de ad                                     |....|