[PATCH 2 of 2] requires: write requires file on commit
Martin von Zweigbergk
martinvonz at google.com
Mon May 4 14:57:31 CDT 2015
On Mon, May 4, 2015 at 12:27 PM Adrian Buehlmann <adrian at cadifra.com> wrote:
> On 2015-05-04 20:27, Drew Gottlieb wrote:
> > # HG changeset patch
> > # User Drew Gottlieb <drgott at google.com>
> > # Date 1429641493 25200
> > # Tue Apr 21 11:38:13 2015 -0700
> > # Node ID 85c369520dd97bad369a0c4b924597f9e720077b
> > # Parent 3f86e3b2548def52732e1f782e89297db8075e8b
> > requires: write requires file on commit
> >
> > Writing the requires file on commit makes it possible for changes to a
> > repo's config to enable features that affect the repo's requirements. An
> > example of this would be enabling manifestv2 in the future, which would
> then
> > have future commits be written with the new manifest format, making it
> > necessary for the requires file to indicate this.
> >
> > This change also modifies test-inherit-mode to expect the requires file's
> > mode to inherit from the store's mode after a commit. Previously, it only
> > inherited from the store's mode on repo init, and the test assumed it
> would
> > never be touched after this point.
> >
> > diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
> > --- a/mercurial/localrepo.py
> > +++ b/mercurial/localrepo.py
> > @@ -1602,6 +1602,7 @@
> > #
> > # if minimal phase was 0 we don't need to retract
> anything
> > phases.retractboundary(self, tr, targetphase, [n])
> > + self._writerequirements()
> > tr.close()
> > branchmap.updatecache(self.filtered('served'))
> > return n
> > diff --git a/tests/test-inherit-mode.t b/tests/test-inherit-mode.t
> > --- a/tests/test-inherit-mode.t
> > +++ b/tests/test-inherit-mode.t
> > @@ -70,7 +70,7 @@
> > 00660 ./.hg/cache/rbc-revs-v1
> > 00660 ./.hg/dirstate
> > 00660 ./.hg/last-message.txt
> > - 00600 ./.hg/requires
> > + 00660 ./.hg/requires
> > 00770 ./.hg/store/
> > 00660 ./.hg/store/00changelog.i
> > 00660 ./.hg/store/00manifest.i
>
> This sounds pretty scary...
>
> I think repository readers today can safely assume that the requires
> file is not changed any more after they have first seen it. Somebody
> might be actually doing that already and indeed depend on that assumption.
>
> At least, this might be quite a big surprise.
>
What kind of repository readers are you thinking of? A command server?
Tortoise? Or even something the user doesn't know is running? One
alternative is of course to not allow upgrades. Any other alternatives?
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20150504/2989697c/attachment.html>
More information about the Mercurial-devel
mailing list