[PATCH 0 of 6 phases] Secret changeset

Angel Ezquerra angel.ezquerra at gmail.com
Thu Dec 22 07:24:16 CST 2011


On Thu, Dec 22, 2011 at 1:55 PM, Pierre-Yves David
<pierre-yves.david at logilab.fr> wrote:
> On Thu, Dec 22, 2011 at 12:35:39PM +0100, Angel Ezquerra wrote:
>
>> > I think the setup below may become common once people get used to mutable
>> > mercurial:
>> >
>> >    Two central repositories:
>> >
>> >    * A non-publishing one where every body can push
>> >
>> >    * A publishing one where reviewer can push with enough care and security to
>> >      be sure to only push what they have reviewed.
>> >
>> > Phase hooks should play a big role in making sure changeset are not made public by mistake.
>>
>> That is perhaps what I had missed. I thought that pushing to _any_
>> repo would always make the changesets public (i.e. take them out of
>> the draft phase). Are you saying that is not the case?
>
> server repository can be either publish or unpublishing. only changeset pushed
> to publishing server are made public.
>
> See http://selenic.com/hg/rev/218ec96c45d7 for details
>
> Publish is default for backward compatibility reason. People playing with
> mutable history will want all dev to turn it to False on they developement
> repository.

I went through that page and I am not sure I fully understand. In
particular I am confused where it says that:

"Setting a repository as "publishing" alter its behavior **when used
as a server**: all changesets are **seen** as public changesets by
clients."

If clients see _all_  changesets as public, and you push a draft
changeset to a non-publising repo, a client pulling from that
non-publishing repo will get those draft changesets as public? Perhaps
what it means is that clients will _only_  get public changesets?

As you see I found the explanation a little confusing.

Angel


More information about the Mercurial-devel mailing list