evolve error - abort: base of divergent changeset not found
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Tue Jun 23 22:34:55 UTC 2015
On 06/16/2015 01:21 AM, John Jefferies wrote:
>
> I am using Ubuntu 14.04 with hg v3.3.2, and the current tip of the
> evolve extension from https://bitbucket.org/marmoute/mutable-history.
(it would be useful to indicate the hash of such tip for future reference)
> I was organising a pile of local changesets, getting them into a state
> suitable for pushing. I have done similar stuff many times, but this
> time I must have stumbled on a bug. After one of the rebase commands I
> had two (unexpected) troubled changesets, the tip and the child of rev 0
> (it wasn't rev 1 because of hidden changesets).
I think you got divergence from the rebase. you use rebase -s or rebase
-b and this automatically included an obsolete changesets that got
rebased. This created (or registered arbitrarily) another successors of
the already obsolete changesets, creating divergence.
This is a shortcoming of the current collaboration of evolve and rebase,
we will get is improved eventually
> I tried using evolve to cure the top changeset, but got this:
> -----------------
> $ hg evolve
> abort: base of divergent changeset 256dd9b32794 not found
> (this case is not yet handled)
This was a bug in the base computation, it should be fixed in the new
evolve version I just pushed 5.1.5
> -----------------
>
> I tried several other things, including using touch, cloning the repo,
> and updating to the tip of the evolve project, but nothing worked; the
> clone still had the same troubled changesets. The repo was ok according
> to verify.
Having some graph of the situation would help. When trying to solve
divergence issue, hg prune and/or hg touch --duplicate are usually helpful.
> I did find a cure:
> - disable the evolve extension
> - make a trivial change to the tip (which was one of the troubled
> changesets)
> - hg commit --amend
> - re-enable the evolve extension
By changing the hash (amend) without creating an obsmarker, you broke
the tracking of what is a replacement of what from evolution, dropping
the divergence in the process.
This could have been achieved with
hg touch --duplicate tip
hg prune OLDHASHOFTIP
This is not a magic recipe, as divergence usually want's to be cured.
--
Pierre-Yves David
More information about the Mercurial
mailing list