On 09/16/2016 04:37 PM, David Demelier wrote:
2016-09-14 21:14 GMT+02:00 Pierre-Yves David <pierre-yves.da...@ens-lyon.org>:
In the past couple of weeks I made a couple of extra changes to the topic

'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:



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

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 ?


Pierre-Yves David
Mercurial-devel mailing list

Reply via email to