Submitter | Drew Gottlieb |
---|---|
Date | May 5, 2015, 10:59 p.m. |
Message ID | <3df093b5de908329a655.1430866744@waste.org> |
Download | mbox | patch |
Permalink | /patch/8917/ |
State | Accepted |
Headers | show |
Comments
On 2015-05-06 00:59, Drew Gottlieb wrote: > # HG changeset patch > # User Drew Gottlieb <drgott@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!
I agree. Matt, feel free to drop those two lines. On Tue, May 5, 2015 at 4:27 PM Adrian Buehlmann <adrian@cadifra.com> wrote: > On 2015-05-06 00:59, Drew Gottlieb wrote: > > # HG changeset patch > > # User Drew Gottlieb <drgott@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! >
On Tue, May 5, 2015 at 6:03 PM Drew Gottlieb <drgott@google.com> wrote: > I agree. Matt, feel free to drop those two lines. > Done. I'll just go ahead and push this to the clowncopter since we have already gotten a review by someone outside of our team (thanks, Adrian). > > On Tue, May 5, 2015 at 4:27 PM Adrian Buehlmann <adrian@cadifra.com> > wrote: > >> On 2015-05-06 00:59, Drew Gottlieb wrote: >> > # HG changeset patch >> > # User Drew Gottlieb <drgott@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! >> > _______________________________________________ > Mercurial-devel mailing list > Mercurial-devel@selenic.com > http://selenic.com/mailman/listinfo/mercurial-devel >
Patch
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 + $ 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