hg evolve fails with "no support for evolution merge changes yet" error on a linear repository

Angel Ezquerra ezquerra at gmail.com
Tue Mar 25 04:22:09 CDT 2014


Hi,

I wanted to post this to the new evolve-testers mailing list, but I'm
still waiting for my subscription to be approved. I hope it is OK to
post this here.

I'm using the latest stable revision of the mutable-history repository
(revision 6a67606e1c34).

I often get the "no support for evolution merge changes yet" error
when I try to use any advanced feature of the evolution extension. In
particular when I use evolve.

For example I just used fold on a completely linear repository. The
repository contains a single file. It had 11 revisions on a single
topological branch. The repository had a few hidden revisions which
were the result of using amend a few times. I wanted to fold the first
7 non hidden revisions In this repository, I did:

% hg fold -r 0:12
7 changesets folded
4 new unstable changesets
[command completed successfully Tue Mar 25 09:56:30 2014]
% hg evolve
nothing to evolve here
(4 troubled changesets, do you want --any ?)
[command returned code 2 Tue Mar 25 09:57:00 2014]
% hg update tip -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
[command completed successfully Tue Mar 25 09:57:08 2014]
% hg evolve
move:[13] Add --similarity flag (to allow for rename detection).
atop:[17] hgtf: Tool to synchronize TFS and mercurial repositories
merging hgtf.py
[command completed successfully Tue Mar 25 09:57:12 2014]
% hg evolve
move:[14] Fix okcancel dialog icon
atop:[18] Add --similarity flag (to allow for rename detection).
merging hgtf.py
[command completed successfully Tue Mar 25 09:57:15 2014]
% hg evolve
move:[15] Exclude MQ patches from the list of outgoing revisions.
atop:[19] Fix okcancel dialog icon
merging hgtf.py
[command completed successfully Tue Mar 25 09:57:17 2014]
% hg evolve
move:[16] Add the list of mercurial tags to the TFS commit message.
atop:[20] Exclude MQ patches from the list of outgoing revisions.
merging hgtf.py
[command completed successfully Tue Mar 25 09:57:18 2014]
% hg evolve
move:[21] Add the list of mercurial tags to the TFS commit message.
atop:[21] Add the list of mercurial tags to the TFS commit message.
abort: no support for evolution merge changesets yet
hint: Redo the merge a use `hg prune` to obsolete the old one

So for some reason evolve believes that there is a merge changeset
that needs evolving. I don't know how can this be since the original
respository was linear. I suspected that it may be due to the hidden
revisions. Thankfully I had created a clone before running hg fold.
This is something I always do before doing any fancy evolution
operation (due to this problem and others like it). The clone had none
of the hidden revisions, so I tried doing the same with the cloned
repository (after creating another clone just in case of course! :->
). Unfortunately this did not work either:

% hg phase --rev 0 --draft --force
[command completed successfully Tue Mar 25 10:11:09 2014]
% hg fold -r 0:6
7 changesets folded
4 new unstable changesets
[command completed successfully Tue Mar 25 10:11:34 2014]
% hg update -C tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
[command completed successfully Tue Mar 25 10:12:07 2014]
% hg evolve
move:[7] Add --similarity flag (to allow for rename detection).
atop:[11] hgtf: Tool to synchronize TFS and mercurial repositories
merging hgtf.py
[command completed successfully Tue Mar 25 10:12:10 2014]
% hg evolve
move:[8] Fix okcancel dialog icon
atop:[12] Add --similarity flag (to allow for rename detection).
merging hgtf.py
[command completed successfully Tue Mar 25 10:12:11 2014]
% hg evolve
move:[9] Exclude MQ patches from the list of outgoing revisions.
atop:[13] Fix okcancel dialog icon
merging hgtf.py
[command completed successfully Tue Mar 25 10:12:13 2014]
% hg evolve
move:[10] Add the list of mercurial tags to the TFS commit message.
atop:[14] Exclude MQ patches from the list of outgoing revisions.
merging hgtf.py
[command completed successfully Tue Mar 25 10:12:14 2014]
% hg evolve
move:[15] Add the list of mercurial tags to the TFS commit message.
atop:[15] Add the list of mercurial tags to the TFS commit message.
abort: no support for evolution merge changesets yet
hint: Redo the merge a use `hg prune` to obsolete the old one
[command returned code 255 Tue Mar 25 10:12:15 2014]

I think this is the simplest possible use case for fold. Possibly even
one of the simplest cases for evolution since there are no changes to
the contents of the revisions. If this does not work the fold command
is not really usable IMHO. In addition the error message is confusing
(merge? what merge?) and it does not really help me at all. I gives me
no (clear) clue of what to do (which revision is "the old one"?).

I've very excited about evolution, and I use it daily (mostly to make
safe amends) but for now it seems it is best to use MQ's fold :-/
Actually I am a bit worried that recently people have been advised to
use evolve rather than MQ on the official mercurial maling list when
IMHO evolve is not nearly stable enough for safe, production use. If I
had not made a clone before running hg fold I would be in a tough
spot.

Cheers,

Angel


More information about the Mercurial-devel mailing list