Experimental implementation of liquid-hg

Martin Geisler mg at aragost.com
Wed Jan 19 08:44:47 CST 2011


Isaac Jurado <diptongo at gmail.com> writes:

> On Wed, Jan 19, 2011 at 2:22 PM, Martin Geisler <mg at aragost.com> wrote:
>> Pierre-Yves David <pierre-yves.david at ens-lyon.org> writes:
>>
>>>> And this is similarly not quite right. It's the act of pushing a
>>>> changeset to a public repo that should freeze it. Changesets that
>>>> are local only should remain liquid indefinitely.
>>>
>>> I think we mostly agree on the goal of liquid changeset. In order to
>>> not change too much stuff at the same time I was a bit shy for the
>>> semantic of this experimental implementation. As we seems to share
>>> most vision on liquid. I'll propose a more ambitious semantic.
>>>
>>> I think we agree on the two following statements.
>>>
>>>     (1) You *CAN NOT* use any history editing commands on "Frozen"
>>>         changeset. (You shall only edit *liquid* changeset)
>>>
>>>     (2) Any changeset you published *MUST* be frozen. (Liquid
>>>         changeset are meant to be local only)
>>
>> I don't really agree with this -- if I cannot publish liquid
>> changesets, then there is no fun to all of this.
>
> Indeed. But I also agree with Matt/Linus in that rebasing is not
> something you want to do with already pushed history.

Agreed -- with the understanding that one should not edit already
published and frozen history. The whole idea here is to be explicit
about what parts are safe and what parts are still volatile.

> [...] Again, this has a problem. In case you are synchronizing two
> liquid csets that have been "mutated", there is the hard decision of
> picking up the right one.

I don't think we can pick the right one automatically. One solution is
to leave both changesets in the users history and give him a hint about
what to do based on the chain of transformations you mention above.

The dead branches concept has some of this: when you pull, you have both
branches explicitly in the history and you can then rebase your work as
needed. The dead changeset could even contain meta information that
would give the user such a hint.

Henrik has recently rebased the patch queue to crew tip:

  https://bitbucket.org/mg/dead-branches

-- 
Martin Geisler

aragost Trifork
Professional Mercurial support
http://aragost.com/en/services/mercurial/blog/


More information about the Mercurial-devel mailing list