[PATCH] test-manifestv2.t: test that we can convert to manifestv2 with clone
Adrian Buehlmann
adrian at cadifra.com
Tue May 5 23:27:49 UTC 2015
On 2015-05-06 00:59, Drew Gottlieb wrote:
> # HG changeset patch
> # User Drew Gottlieb <drgott at google.com>
> # Date 1430865181 25200
> # Tue May 05 15:33:01 2015 -0700
> # Node ID 3df093b5de908329a655061d0d70662e9ec07c4c
> # Parent c5d4f9cc8da7bb2068457e96e4f74ff694514ced
> test-manifestv2.t: 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.
>
> diff --git a/tests/test-manifestv2.t b/tests/test-manifestv2.t
> --- a/tests/test-manifestv2.t
> +++ b/tests/test-manifestv2.t
> @@ -1,4 +1,71 @@
> -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
> +
..
> + $ grep manifestv2 .hg/requires
> + manifestv2
Nitpick: I think you can leave away this one (goal: keep tests as
minimal as possible). It's very unlikely that anyone ever manages to get
a patch in which would remove an entry from .hg/requires. That file is
written at repo creation.
> + $ 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
Other than that: Nice testcase additions!
More information about the Mercurial-devel
mailing list