Help designing the evolve UI
Aurélien Campéas
aurelien.campeas at logilab.fr
Thu Apr 17 09:50:19 CDT 2014
On 17/04/2014 16:33, Pierre-Yves David wrote:
>
>
> On 04/17/2014 10:29 AM, Aurélien Campéas wrote:
>> On 17/04/2014 16:05, Pierre-Yves David wrote:
>>>
>> [...]
>>>>>> Divergent changesets are not handled AFAIK.
>>>>>
>>>>> Yeah, I remember running into a situation where the extension
>>>>> basically
>>>>> said "sorry, I don't know how to solve this" :)
>>>>>
>>>>
>>>> And I suspect it won't ever know what to do :)
>>>
>>> We do! the basic logic is implemented. Some preliminary step of more
>>> complicated case are just not implemented yet (because more urgent stuff
>>> are being handled first)
>>>
>>
>> Ah, glad to hear it, maybe that was bad luck, but the few times I asked
>> evolve to solve a divergence I was said "no luck" .... Since then
>> I've learnt not to bother trying.
>>
>>> Evolving stuff one at a time is a strong feature of evolve.
>>
>> Maybe but "hg stabilize" should be abortable imho.
>
> `hg up -C .`
Not equivalent. A whole rebase is abortable. One individual "evolve"
or "graft" messy state can be aborted with "update -C".
>
> Current instrastructure for multi-step operation is Mercurial did not
> over anything out of the box. the current implementation of evolve is
> very hacky for now. But it does the job.
The rebase command provides such a feature. It does the job I need.
>
> We would be happy to review your patches adding support for `hg graft
> --abort`. That would bring an initial solution.
Well, I would be very happy providing such patches, however there's no
mercurial core development in my current work assignments, so ...
>
>
>>
>> BTW, one feature I really miss is also the ability to "strip"
>> obsolescence markers (this is related to my point above).
>
> NO. you do not miss the ability to strip obsolescence markers. Stripping
> obsolescence markers is bad, wrong, awful and the source of all evil.
Pierre-Yves, you shouldn't be so sure of what users want or need.
It regularly happens that I rebase some cset, only to realize I should
have left it untouched. But too late.
Now if I push, the new version will be pushed. It may create a
(probably harmless) divergence, or confuse a review tool.
I can of course just wipe .hg/stores/obsstore, and repull, and
then rebuild whatever additional obsolescence state I had before
the mistake but that can be tedious.
Stripping obsolescence markers is useful for the same reason strip
is useful (and to be used wisely & sparingly).
Now, if there are theoretical or practical objections to that,
I'd like to know them. I'm not, however, interested in anathems.
>
> The feature you miss is a better story to revive changesets.
>
I know how to use "hg touch" to revive changesets.
This is good enough as far as I'm concerned.
Regards,
Aurélien.
More information about the Mercurial-devel
mailing list