Mercurial > evolve
comparison tests/test-topic.t @ 3763:6f56ff701746 stable
tests: add a test for "hg help -e topic"
Currently, some configuration snippets do not render well; we'll fix
this in forthcoming changesets.
author | Denis Laxalde <denis.laxalde@logilab.fr> |
---|---|
date | Wed, 23 May 2018 11:09:37 +0200 |
parents | a346b1641dfa |
children | f0f9139016d8 |
comparison
equal
deleted
inserted
replaced
3751:a1a0cfbffd30 | 3763:6f56ff701746 |
---|---|
10 > [experimental] | 10 > [experimental] |
11 > # disable the new graph style until we drop 3.7 support | 11 > # disable the new graph style until we drop 3.7 support |
12 > graphstyle.missing = | | 12 > graphstyle.missing = | |
13 > EOF | 13 > EOF |
14 | 14 |
15 $ hg help -e topic | |
16 topic extension - support for topic branches | |
17 | |
18 Topic branches are lightweight branches which disappear when changes are | |
19 finalized (move to the public phase). | |
20 | |
21 Compared to bookmark, topic is reference carried by each changesets of the | |
22 series instead of just the single head revision. Topic are quite similar to | |
23 the way named branch work, except they eventually fade away when the changeset | |
24 becomes part of the immutable history. Changeset can belong to both a topic | |
25 and a named branch, but as long as it is mutable, its topic identity will | |
26 prevail. As a result, default destination for 'update', 'merge', etc... will | |
27 take topic into account. When a topic is active these operations will only | |
28 consider other changesets on that topic (and, in some occurrence, bare | |
29 changeset on same branch). When no topic is active, changeset with topic will | |
30 be ignored and only bare one on the same branch will be taken in account. | |
31 | |
32 There is currently two commands to be used with that extension: 'topics' and | |
33 'stack'. | |
34 | |
35 The 'hg topics' command is used to set the current topic, change and list | |
36 existing one. 'hg topics --verbose' will list various information related to | |
37 each topic. | |
38 | |
39 The 'stack' will show you information about the stack of commit belonging to | |
40 your current topic. | |
41 | |
42 Topic is offering you aliases reference to changeset in your current topic | |
43 stack as 't#'. For example, 't1' refers to the root of your stack, 't2' to the | |
44 second commits, etc. The 'hg stack' command show these number. | |
45 | |
46 Push behavior will change a bit with topic. When pushing to a publishing | |
47 repository the changesets will turn public and the topic data on them will | |
48 fade away. The logic regarding pushing new heads will behave has before, | |
49 ignore any topic related data. When pushing to a non-publishing repository | |
50 (supporting topic), the head checking will be done taking topic data into | |
51 account. Push will complain about multiple heads on a branch if you push | |
52 multiple heads with no topic information on them (or multiple public heads). | |
53 But pushing a new topic will not requires any specific flag. However, pushing | |
54 multiple heads on a topic will be met with the usual warning. | |
55 | |
56 The 'evolve' extension takes 'topic' into account. 'hg evolve --all' will | |
57 evolve all changesets in the active topic. In addition, by default. 'hg next' | |
58 and 'hg prev' will stick to the current topic. | |
59 | |
60 Be aware that this extension is still an experiment, commands and other | |
61 features are likely to be change/adjusted/dropped over time as we refine the | |
62 concept. | |
63 | |
64 topic-mode | |
65 ========== | |
66 | |
67 The topic extension can be configured to ensure the user do not forget to add | |
68 a topic when committing a new topic: | |
69 | |
70 [experimental] | |
71 # behavior when commit is made without an active topic | |
72 topic-mode = ignore # do nothing special (default) | |
73 topic-mode = warning # print a warning | |
74 topic-mode = enforce # abort the commit (except for merge) | |
75 topic-mode = enforce-all # abort the commit (even for merge) | |
76 topic-mode = random # use a randomized generated topic (except for merge) | |
77 topic-mode = random-all # use a randomized generated topic (even for merge) | |
78 | |
79 Single head enforcing | |
80 ===================== | |
81 | |
82 The extensions come with an option to enforce that there is only one heads for | |
83 each name in the repository at any time. | |
84 | |
85 [experimental] enforce-single-head = yes | |
86 | |
87 Publishing behavior | |
88 =================== | |
89 | |
90 Topic vanish when changeset move to the public phases. Moving to the public | |
91 phase usually happens on push, but it is possible to update that behavior. The | |
92 server needs to have specific config for this. | |
93 | |
94 # everything pushed become public (the default) [phase] publish = yes | |
95 | |
96 # nothing push turned public [phase] publish = no | |
97 | |
98 # topic branches are not published, changeset without topic are [phase] | |
99 publish = no [experimental] topic.publish-bare-branch = yes | |
100 | |
101 In addition, the topic extension adds a "--publish" flag on 'hg push'. When | |
102 used, the pushed revisions are published if the push succeeds. It also applies | |
103 to common revisions selected by the push. | |
104 | |
105 list of commands: | |
106 | |
107 stack list all changesets in a topic and other information | |
108 topics View current topic, set current topic, change topic for a set | |
109 of revisions, or see all topics. | |
110 | |
111 (use 'hg help -v topic' to show built-in aliases and global options) | |
15 $ hg help topics | 112 $ hg help topics |
16 hg topics [TOPIC] | 113 hg topics [TOPIC] |
17 | 114 |
18 View current topic, set current topic, change topic for a set of revisions, or | 115 View current topic, set current topic, change topic for a set of revisions, or |
19 see all topics. | 116 see all topics. |