news from the topic experiment

Pierre-Yves David pierre-yves.david at ens-lyon.org
Fri Sep 16 16:35:39 UTC 2016



On 09/16/2016 04:37 PM, David Demelier wrote:
> 2016-09-14 21:14 GMT+02:00 Pierre-Yves David <pierre-yves.david at ens-lyon.org>:
>> In the past couple of weeks I made a couple of extra changes to the topic
>> experiment,
>>
>> 'hg topic --verbose' got a large update and now list various information
>> about the topics, this should help people getting a grasp on the current
>> state of they topic in a single command:
>>
>> The most notable change is probably the creation of the 'hg stack' command.
>> The 'hg stack' command display comprehensive information about all
>> changesets in your current topic.
>>
>>
>> The topic extension also gained some raw documentation about its various
>> features, its not great but is better than nothing. Feel free to send patch
>> to improve it.
>>
>> reminder, the extension can be found there:
>>
>>   https://www.mercurial-scm.org/repo/topic-experiment/
>
> Hello,
>
> Disclaimer: this will be totally subjective.
>
> Branches, bookmarks, topics. Too much ways to do something in Mercurial.
>
> When I started using Mercurial, there was only branches and it was
> fine. Then we introduced bookmarks to simulate git branches and it
> works mostly fine too. But it has increased the learning curve and
> added new workflows. For the end user, it's not very easy to start and
> learn all these things and when I should use that, or this or
> whatever.
>
> Now topics, yet another new way of working. A new question may arise:
> when to use topics, when to use bookmarks, when to use branches?
>
> I think we really should improve what is existing (understand
> bookmarks) instead of creating new Mercurial commands. Mercurial
> always had the reputation of being easy to learn. The upcoming evolve
> will already add new commands and it seems that topics will also
> introduce new commands. I'm not sure if the reputation of being easy
> will stay :-).

This is a very valid feedback. The start of the topic experiments come 
from the finding that after 5 years of struggle trying to make bookmarks 
viable, they seems too alien to other Mercurial concept to ever work in 
a satisfactory way.

(You can get details about this here :
https://www.mercurial-scm.org/wiki/FeatureBranchesStruggle )

So successful experimentation around the topic idea aims at being about 
to deprecate bookmarks it favor of topic medium terms.

This would give you two distinct options:

- named branch: for long lived branching (eg: anything that will 
actually result in a dedicated building and shipping)

- topic: for short lived feature branch, anything still in the process 
of being made, with the goal and being finalized on one named branch.

In addition, as Topic helps clearly defines the current stack you are 
working with, this will help evolution command to be more predicable, 
solving multiple open UI issue with currently have with evolve.
So topic is actually expected to smooth out the complexity of evolve.

> I if recall correctly, someone on the #mercurial channel told me that
> topics requires a non-publishing repository. If it's true, for me it's
> a reason to not use topics.

It does not requires a non-publishing repository. You can entirely use 
topic locally.

- If you never work on more than one feature, you don't need topic at all,

- If you work on multiple feature at the same time (ie: have multiple 
anonymous/bookmarked heads, you can use topic locally to organize them,

- If you do advanced code review and use non-publishing review to 
exchange draft with other people. You can use topics to organize these.

> What I'm really in hurry to see, is the journal extension to have a
> better bookmark workflow :-)

Workflow improvements introduce by the journal extensions should also 
apply to topic.


Does this clarify the current process around the experiment for you ?

Cheers,

-- 
Pierre-Yves David



More information about the Mercurial-devel mailing list