tests/test-revlog-v2.t
changeset 32697 19b9fc40cc51
child 36485 351323217fd3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-revlog-v2.t	Fri May 19 20:29:11 2017 -0700
@@ -0,0 +1,62 @@
+A repo with unknown revlogv2 requirement string cannot be opened
+
+  $ hg init invalidreq
+  $ cd invalidreq
+  $ echo exp-revlogv2.unknown >> .hg/requires
+  $ hg log
+  abort: repository requires features unknown to this Mercurial: exp-revlogv2.unknown!
+  (see https://mercurial-scm.org/wiki/MissingRequirement for more information)
+  [255]
+  $ cd ..
+
+Can create and open repo with revlog v2 requirement
+
+  $ cat >> $HGRCPATH << EOF
+  > [experimental]
+  > revlogv2 = enable-unstable-format-and-corrupt-my-data
+  > EOF
+
+  $ hg init empty-repo
+  $ cd empty-repo
+  $ cat .hg/requires
+  dotencode
+  exp-revlogv2.0
+  fncache
+  store
+
+  $ hg log
+
+Unknown flags to revlog are rejected
+
+  >>> with open('.hg/store/00changelog.i', 'wb') as fh:
+  ...     fh.write('\x00\x04\xde\xad')
+
+  $ hg log
+  abort: unknown flags (0x04) in version 57005 revlog 00changelog.i!
+  [255]
+
+  $ cd ..
+
+Writing a simple revlog v2 works
+
+  $ hg init simple
+  $ cd simple
+  $ touch foo
+  $ hg -q commit -A -m initial
+
+  $ hg log
+  changeset:   0:96ee1d7354c4
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     initial
+  
+Header written as expected (changelog always disables generaldelta)
+
+  $ f --hexdump --bytes 4 .hg/store/00changelog.i
+  .hg/store/00changelog.i:
+  0000: 00 01 de ad                                     |....|
+
+  $ f --hexdump --bytes 4 .hg/store/data/foo.i
+  .hg/store/data/foo.i:
+  0000: 00 03 de ad                                     |....|