tests: test that we can convert to manifestv2 with clone
This just adds a test to ensure that we can convert a manifestv1 repo to a
manifestv2 repo (for future commits only) by means of a local clone.
--- a/tests/test-manifestv2.t Mon Apr 13 18:11:47 2015 -0400
+++ b/tests/test-manifestv2.t Tue May 05 15:33:01 2015 -0700
@@ -1,4 +1,69 @@
-Check that entry is added to .hg/requires
+Create repo with old manifest
+
+ $ hg init existing
+ $ cd existing
+ $ echo footext > foo
+ $ hg add foo
+ $ hg commit -m initial
+
+We're using v1, so no manifestv2 entry is in requires yet.
+
+ $ grep manifestv2 .hg/requires
+ [1]
+
+Let's clone this with manifestv2 enabled to switch to the new format for
+future commits.
+
+ $ cd ..
+ $ hg clone --pull existing new --config experimental.manifestv2=1
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files
+ updating to branch default
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ cd new
+
+Check that entry was added to .hg/requires.
+
+ $ grep manifestv2 .hg/requires
+ manifestv2
+
+Make a new commit.
+
+ $ echo newfootext > foo
+ $ hg commit -m new
+
+Check that the manifest actually switched to v2.
+
+ $ hg debugdata -m 0
+ foo\x0021e958b1dca695a60ee2e9cf151753204ee0f9e9 (esc)
+
+ $ hg debugdata -m 1
+ \x00 (esc)
+ \x00foo\x00 (esc)
+ I\xab\x7f\xb8(\x83\xcas\x15\x9d\xc2\xd3\xd3:5\x08\xbad5_ (esc)
+
+Check that manifestv2 is used if the requirement is present, even if it's
+disabled in the config.
+
+ $ echo newerfootext > foo
+ $ hg --config experimental.manifestv2=False commit -m newer
+
+ $ hg debugdata -m 2
+ \x00 (esc)
+ \x00foo\x00 (esc)
+ \xa6\xb1\xfb\xef]\x91\xa1\x19`\xf3.#\x90S\xf8\x06 \xe2\x19\x00 (esc)
+
+Check that we can still read v1 manifests.
+
+ $ hg files -r 0
+ foo
+
+ $ cd ..
+
+Check that entry is added to .hg/requires on repo creation
$ hg --config experimental.manifestv2=True init repo
$ cd repo