Evolve feedbacks

Pierre-Yves David pierre-yves.david at ens-lyon.org
Mon Jun 8 23:47:50 UTC 2015



On 05/19/2015 12:07 AM, Gilles Moris wrote:
> I am currently a beginner with evolve, though I have followed the
> introduction of the concepts those last years.
>
> Currently, I am a MQ user. I introduced its usage at work, and everybody
> is pleased with its use, though it have some limitations that evolve
> remedy elegantly.
> First, I am overall pleased with the usage of evolve, so I won't come
> back on its intrinsics quality, like non destructiveness, easy merging
> of downstream patches, etc...
>
> So below is what I am missing currently. May be some of those already
> exists.
>
> - I would have expected an "evolve --list", much like there is a
> "resolve --list". Basically, I need a roadmap of all the evolutions I
> need to perform to stabilize my work tree. I guess this could be
> partially addressed with some revsets, or "summary --verbose". But I am
> expecting more than that. What are the suspended changesets that make
> some commits unstable ? What is the public commit that bumped my
> changeset? What is the list of divergent commit? I would expect an
> "evolve --list" to give that. Giving the phases in the summary command
> was part of the same move.

We know we miss such feature and we would like to get it. We know how to 
compute such information, someone need to draft the UI and produce some 
patch.

> - Even though evolve is non destructive, it is not obvious how to
> recover that past information:

We also want to improve that aspect, but nobody is working on it yet. 
There is a couple of idea to be tested if someone want to get some code 
written.

>    * I use allprecursors() revset to get access to that, but for a
> typical user, it is not very easy to understand which revset to use. In
> addition, it usually won't display anything, which is my second bullet:

Improving documentation, revset name is definitely on the roadmap. Some 
kind of unfiltering (or special commands) to access the obsolete history 
is to be expected too.

>    * I think some revsets, implying hidden commit should probably
> implicitely trigger --hidden. I don't know if this can be considered a
> bug, but having to do: "hg log -r 'hidden()' --hidden" seems weird. And
> the "--hidden" flag is not very dicoverable, buried in hg help -v (which
> might be on purpose). The same could apply to precursors(), successors().

Generic unfiltering of all hidden changeset will likely provide too 
broad results. We probably want to do target unfiltered to the context 
of what you are asking for.

We offer a hint about --hidden for make it more discoverable.

   $ hg log -r b9d6b90c706f
   abort: hidden revision 'b9d6b90c706f'!
   (use --hidden to access hidden revisions)

If you think the (new) evolve doc does not advertise --hidden properly, 
feel free to suggest update.

>    * Is there a way to display the meta-graph of the precursors /
> successors of a commit ? This would enable to show how we get to a
> particular commit.

As David pointed, hgview and tortoige-hg can display and navigate this 
information.

>    * By extension, I would like to see the incremental diffs introduced
> by each  precursor. A dumb implementation for a linear obsolete
> meta-graph can be made by doing repeatidly: "hg diff --hidden --rev
> precuror1 --rev precursor2". Note again --hidden needed. Note also that
> rebase will bring unrelated changes into the diff. But at least, that's
> a start.

There is some basic commands 'olog' and 'odiff' who display the most 
direct precursors and a diff againts it. hgview will let your see the 
diff againts a precursors/successors too.

> - With prune, you can remove a patch in a linear series. How do you do
> the reverse? Insert a new patch in a linear series. AFAICS, this
> implies: hg update + hg commit + hg rebase. Right? If yes, this may
> deserve a command, much like prune.
>    * Related: what would be the equivalent to: hg qpush --move. A few
> rebase?
>    * Generalization: how do you handle patch re-ordering with evolve?

There is a plan for a "Plan" feature that would allow that.

> - I did not find any high level roadmap of the roll out of evolve. Will
> it be merged back in the main HG repo as an extension? What are the
> condition for that? What is the plan to merge it as standard HG
> commands? When will that happen? What is missing for that to happen?

You can get some of this here:

   https://mercurial.selenic.com/wiki/ChangesetEvolutionDeve

>
> Regards.
> Gilles.
> PS: given the low traffic on evolve mailing list, should this go to
> mercurial-devel instead?

Design discussion goes on mercurial-devel, user feedback and discussion 
for here. I think your email is good here.

-- 
Pierre-Yves David


More information about the Evolve-testers mailing list