[PATCH 2 of 4 evolve-ext] evolve: compute prune destination node before creating obsolescence markers

Pierre-Yves David pierre-yves.david at ens-lyon.org
Fri Apr 3 13:44:24 CDT 2015



On 04/02/2015 07:09 PM, Laurent Charignon wrote:
> # HG changeset patch
> # User Laurent Charignon <lcharignon at fb.com>
> # Date 1428024824 25200
> #      Thu Apr 02 18:33:44 2015 -0700
> # Node ID 89b46ecc6bcfec588667eec38e6ce85ea002b82b
> # Parent  3a9143852da729fb8c0183ca5bbce2009ea02f8b
> evolve: compute prune destination node before creating obsolescence markers
>
> Prune used to compute the destination commit to update to after creating the
> obsolescence markers. This is a commit to prevent a bug that would occur
> with the changes in inhibit for transactions (next commit).
>
> Indeed, with that change in inhibit, when creating the obsolescence markers
> in prune, they would get inhibited right away and we wouldn't update to the
> first non obsolete parent but stay on the same obsolete node (bug).

This is not going to be enough. The working copy update and bookmark 
update must be completed before the transaction is closed. So you need 
to get the markers created at the end of the function. (not super happy 
about this logic inversion, so make sure you document it properly)

I just pushed a test update that show the failure.

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list