This page is primarily intended for Mercurial's developers.
A plan for light weight branching/categorization what would work with other Mercurial principle and actual DVCS idea.
Still a very early prototype stage.
Assign topics to non-public changesets. A topic is like a named branch, in that it is a label on a changeset (the initial prototype even stores the topic in the extra area in the changeset), but that topics just disappear when the change moves to public phase.
1. What Topic solves
Bookmarks are a clone of git's refs, which seems to work more poorly in Mercurial than they do in Git, in part because the synchronization parts of bookmarks aren't really done. Adding the remaining functionality to bookmarks has been challenging, and seems to be adding a lot of conceptual complexity around configuration of the synchronization mechanism that AugieFackler finds frustrating.
The current implementation also makes it possible to say "what patches did I do while working on topic issue1234", which might be nice.
2. What Topic may solve
(Use case that exists but it is not clear if Topic should try to solve them)
3. What Topic do not solve
(Use case we know belong to other feature)
- Right now we use changeset extra for storing the topic. That might lead to bonus divergence problems.
- Should changesets be allowed multiple topics?
- How permissive should we be on topic names?