Call for discussion: Phase names

Pierre-Yves David pierre-yves.david at ens-lyon.org
Mon Jan 9 15:55:57 CST 2012


On 9 janv. 2012, at 21:52, Matt Mackall wrote:

> On Mon, 2012-01-09 at 20:28 +0100, Olav Reinert wrote:
>> Hi all,
>> 
>> At the 2.1 mini-spring in Zürich last week-end, the names of the
>> phases were discussed quite a lot, and it has also been a topic of
>> much discussion here on the mailing list.
>> 
>> In order to reach a useful consensus in time for the 2.1 code freeze
>> in mid-January, Pierre-Yves DAVID from Logilab has asked me to
>> organize a conclusive discussion to decide on the phase names to use
>> in the final release.
>> 
>> 
>> The current (unacceptable) naming scheme is as follows:
>> 
>>   Name    Immutable   Shared
>>   public      X         X
>>   draft                 X
>>   secret
>> 
>> (Even though the names of the changeset properties assigned to the
>> phases (immutable and shared) have also been debated, their meaning is
>> not disputed.
>> 
>> Most people seem to agree that "draft" is a good name for the middle
>> phase, because it implies a work-in-progress that may be shared. The
>> name "public" is disliked by some because it doesn't convey
>> immutability, which is an important and distinguishing property of
>> that phase.
> 
> Changesets become immutable because they've been made public (ie by
> pushing them to a public server), not vice-versa.
> 
> I basically think 'public' and 'draft' are frozen. Not interested in
> 'published'.
> 
>> The name "secret" is disliked because to some it suggests enforcement
>> of confidentiality (i.e., that it's safe to check in trade secrets or
>> nuclear launch codes), which is not the case, and not intended,
>> either.
> 
> I've yet to see any good articulation of why we'd want to expose hashes
> from this phase over the wire. It continues to seem self-evidently wrong
> from a design perspective to do so: the client simply has no business
> having visibility into these changesets. I will continue to be unhappy
> with this regardless of what the phase is named.


Secret changeset are not excluded from discover if they both exist on local and on remote. They are therefor part of common and we need to transmit phase data bout what is in common.

The fact they are part of common could be seen as a bug a first glance but I think it actually something good.

	- If remote already already have the 10Mo I want to make public I better not send them again.
	- I want to add a changeset on top of 10 secret changeset I better just sent the last one



More details in this discussion:
	http://selenic.com/pipermail/mercurial-devel/2012-January/036899.html

"Why do we need to exchange secret phase" section of :
	http://article.gmane.org/gmane.comp.version-control.mercurial.devel/46934


-- 
Pierre-Yves


More information about the Mercurial-devel mailing list