Mercurial > evolve
diff tests/test-topic.t @ 3816:4c68dd62943c mercurial-4.5
test-compat: merge stable into mercurial-4.5
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Fri, 08 Jun 2018 22:52:51 +0530 |
parents | 4aabc5c8b2af |
children | 1bc4b0807c37 5ca297e78f2c |
line wrap: on
line diff
--- a/tests/test-topic.t Wed Apr 25 14:09:34 2018 +0100 +++ b/tests/test-topic.t Fri Jun 08 22:52:51 2018 +0530 @@ -12,6 +12,114 @@ > graphstyle.missing = | > EOF + $ hg help -e topic + topic extension - support for topic branches + + Topic branches are lightweight branches which disappear when changes are + finalized (move to the public phase). + + Compared to bookmark, topic is reference carried by each changesets of the + series instead of just the single head revision. Topic are quite similar to + the way named branch work, except they eventually fade away when the changeset + becomes part of the immutable history. Changeset can belong to both a topic + and a named branch, but as long as it is mutable, its topic identity will + prevail. As a result, default destination for 'update', 'merge', etc... will + take topic into account. When a topic is active these operations will only + consider other changesets on that topic (and, in some occurrence, bare + changeset on same branch). When no topic is active, changeset with topic will + be ignored and only bare one on the same branch will be taken in account. + + There is currently two commands to be used with that extension: 'topics' and + 'stack'. + + The 'hg topics' command is used to set the current topic, change and list + existing one. 'hg topics --verbose' will list various information related to + each topic. + + The 'stack' will show you information about the stack of commit belonging to + your current topic. + + Topic is offering you aliases reference to changeset in your current topic + stack as 't#'. For example, 't1' refers to the root of your stack, 't2' to the + second commits, etc. The 'hg stack' command show these number. + + Push behavior will change a bit with topic. When pushing to a publishing + repository the changesets will turn public and the topic data on them will + fade away. The logic regarding pushing new heads will behave has before, + ignore any topic related data. When pushing to a non-publishing repository + (supporting topic), the head checking will be done taking topic data into + account. Push will complain about multiple heads on a branch if you push + multiple heads with no topic information on them (or multiple public heads). + But pushing a new topic will not requires any specific flag. However, pushing + multiple heads on a topic will be met with the usual warning. + + The 'evolve' extension takes 'topic' into account. 'hg evolve --all' will + evolve all changesets in the active topic. In addition, by default. 'hg next' + and 'hg prev' will stick to the current topic. + + Be aware that this extension is still an experiment, commands and other + features are likely to be change/adjusted/dropped over time as we refine the + concept. + + topic-mode + ========== + + The topic extension can be configured to ensure the user do not forget to add + a topic when committing a new topic: + + [experimental] + # behavior when commit is made without an active topic + topic-mode = ignore # do nothing special (default) + topic-mode = warning # print a warning + topic-mode = enforce # abort the commit (except for merge) + topic-mode = enforce-all # abort the commit (even for merge) + topic-mode = random # use a randomized generated topic (except for merge) + topic-mode = random-all # use a randomized generated topic (even for merge) + + Single head enforcing + ===================== + + The extensions come with an option to enforce that there is only one heads for + each name in the repository at any time. + + [experimental] + enforce-single-head = yes + + Publishing behavior + =================== + + Topic vanish when changeset move to the public phases. Moving to the public + phase usually happens on push, but it is possible to update that behavior. The + server needs to have specific config for this. + + * everything pushed become public (the default): + + [phase] + publish = yes + + * nothing push turned public: + + [phase] + publish = no + + * topic branches are not published, changeset without topic are: + + [phase] + publish = no + [experimental] + topic.publish-bare-branch = yes + + In addition, the topic extension adds a "--publish" flag on 'hg push'. When + used, the pushed revisions are published if the push succeeds. It also applies + to common revisions selected by the push. + + list of commands: + + stack list all changesets in a topic and other information + topics View current topic, set current topic, change topic for a set + of revisions, or see all topics. + + (use 'hg help -v topic' to show built-in aliases and global options) $ hg help topics hg topics [TOPIC]