Evolve feedbacks
Gilles Moris
gilles.moris at free.fr
Tue May 19 07:07:21 UTC 2015
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.
- Even though evolve is non destructive, it is not obvious how to
recover that past information:
* 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:
* 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().
* 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.
* 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.
- 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?
- 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?
Regards.
Gilles.
PS: given the low traffic on evolve mailing list, should this go to
mercurial-devel instead?
More information about the Evolve-testers
mailing list