diff tests/test-init.t @ 41447:189e06b2d719 stable

revlog: make sure we never use sparserevlog without general delta (issue6056) We are getting user report where the delta code tries to use `sparse-revlog` logic on repository where `generaldelta` is disabled. This can't work so we ensure the two booleans have a consistent value. Creating this kind of repository is not expected to be possible the current bug report point at a clonebundle related bug that is still to be properly isolated (Yuya Nishihara seems to a have done it). Corrupting a repository to reproduce the issue is possible. A test using this method is included in this fix.
author Boris Feld <boris.feld@octobus.net>
date Thu, 24 Jan 2019 18:22:47 -0500
parents a0886a4d6dce
children 95c4cca641f6
line wrap: on
line diff
--- a/tests/test-init.t	Wed Jan 30 18:15:38 2019 +0100
+++ b/tests/test-init.t	Thu Jan 24 18:22:47 2019 -0500
@@ -268,3 +268,25 @@
   exporting bookmark test
   $ hg -R remote-bookmarks bookmarks
      test                      0:08b9e9f63b32
+
+Check format constraint
+-----------------------
+
+  $ hg init issue6056 --config format.usegeneraldelta=0 --config format.sparse-revlog=0
+  $ cd issue6056
+  $ echo foo > 1
+  $ echo foo > 2
+  $ echo foo > 3
+  $ echo foo > 4
+  $ echo foo > 5
+  $ hg add *
+
+Build a bogus repository (sparserevlog without general delta)
+
+  $ hg commit -m 'initial changesets'
+  $ echo 'sparserevlog' >> .hg/requires
+  $ for x in `$TESTDIR/seq.py 100`; do
+  >     echo $x >> `expr $x % 5 + 1`
+  >     hg commit -m $x
+  > done
+  $ cd ..