/!\ This page is primarily intended for Mercurial developers

There are a number of things that have to be discussed about how the Evolve UI works.

Automatic "hg evolve" call

Many evolve commands produce unstable changesets. Should they immediately call hg evolve by default?

1. pros

2. cons

Perhaps ui.autoevolve option? On by default? Off by default?

hg fold

Currently fold can work in two modes: folding between a target revision and ".", or given an explicit set of revisions, fold this set into a single revision. The current UI for this is weird: for the first mode you specify revisions without --rev and the second mode you specify them with --rev. This UI is inconsistent with the rest of Mercurial. We have several examples of commands that take revisions with or without a --rev argument, and in all these cases, the behaviour is the same, and the --rev specifier is just optional:

Jordi has proposed patch to address this that treats revisions with and without --rev the same way and obtains both kinds of behaviours depending on whether a single or multiple revisions are specified. However, this has other problems. With certain revsets, it may not be easy to know in advance how many revisions are actually in the revset, so it would be surprising to get different behaviour depending on the number of revisions.

How to solve this?