evolve: interaction with users running older mercurial versions

Pierre-Yves David pierre-yves.david at ens-lyon.org
Sat Dec 13 18:03:04 UTC 2014



On 12/12/2014 05:20 AM, Thomas De Schampheleire wrote:
> Hi,
>
> I would like to understand how the following scenario would end:
>
> 1. Alice has a recent Mercurial version and has enabled the evolve
> extension. She evolves one or more revisions in her repository so that
> one or more revisions are marked obsolete and replaced by new
> revisions.
>
> 2. Bob does not have evolve enabled and/or runs a Mercurial version
> that did not have full evolve support, and pulls from Alice's
> repository.
>
> What does Bob see in the pulled repository? Does he have a correct
> view of the current state, meaning that obsolete revisions are
> effectively obsolete and the final visible state is the one that Alice
> intended?
>
> In case it matters, with 'old Mercurial version' I am considering 2.6,
> I don't care about older versions.

- hidden changeset (the obsolete ones) will not be advertised by Alice 
server. So Bob will not pull them.

- If Bob directly pull from Alice repo from disk, it will be able to 
read the markers from Mercurial version 2.3 so you will be safe (unless 
the repo is created with 3.2). Bob will get a warning about the 
suspicious situation but everything will be fine.

- evolve is not enable on Bob Mercurial, it will not try to pull any 
obsolescence markers. and it is "fine" because he did not pulled the 
obsolete changesets either.


-- 
Pierre-Yves David



More information about the Mercurial mailing list