annotate tests/test-namespaces.t @ 6809:9903ee44e658 mercurial-5.6

test-compat: merge mercurial-5.7 into mercurial-5.6
author Anton Shestakov <av6@dwimlabs.net>
date Wed, 26 Jun 2024 18:09:37 +0400
parents 3228f1e92466
children 5376963ea1d9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6236
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
1 https://www.mercurial-scm.org/wiki/TopicPlan#sub_branches.2C_namespacing_and_representation
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
2
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
3 $ . "$TESTDIR/testlib/topic_setup.sh"
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
4
6238
6bbd16579f0f topic: list namespaces with debug-namespaces
Anton Shestakov <av6@dwimlabs.net>
parents: 6237
diff changeset
5 $ hg init repo
6bbd16579f0f topic: list namespaces with debug-namespaces
Anton Shestakov <av6@dwimlabs.net>
parents: 6237
diff changeset
6 $ cd repo
6bbd16579f0f topic: list namespaces with debug-namespaces
Anton Shestakov <av6@dwimlabs.net>
parents: 6237
diff changeset
7
6552
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
8 Setting a topic namespace alone doesn't affect wdir()
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
9
6239
8861e33f3bb2 topic: setting current repo namespace with debug-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6238
diff changeset
10 $ hg debug-topic-namespace space-name
8861e33f3bb2 topic: setting current repo namespace with debug-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6238
diff changeset
11 marked working directory as topic namespace: space-name
8861e33f3bb2 topic: setting current repo namespace with debug-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6238
diff changeset
12 $ hg debug-topic-namespaces
8861e33f3bb2 topic: setting current repo namespace with debug-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6238
diff changeset
13 space-name
6661
b33bf56ce558 tests: show .hg/topic-namespace in a couple of places in test-namespaces.t
Anton Shestakov <av6@dwimlabs.net>
parents: 6660
diff changeset
14 $ cat .hg/topic-namespace
b33bf56ce558 tests: show .hg/topic-namespace in a couple of places in test-namespaces.t
Anton Shestakov <av6@dwimlabs.net>
parents: 6660
diff changeset
15 space-name (no-eol)
6239
8861e33f3bb2 topic: setting current repo namespace with debug-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6238
diff changeset
16
6241
85abf58c3d8c topic: namespace template keyword
Anton Shestakov <av6@dwimlabs.net>
parents: 6240
diff changeset
17 $ hg log -r 'wdir()' -T '{topic_namespace}\n'
6552
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
18 none
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
19
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
20 $ hg log -r 'wdir()' -T '{fqbn}\n'
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
21 default
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
22
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
23 But after setting a topic the already-set namespace is visible on wdir()
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
24
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
25 $ hg topic feature
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
26 marked working directory as topic: feature
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
27 $ hg topics
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
28 * feature (0 changesets)
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
29
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
30 $ hg log -r 'wdir()' -T '{topic_namespace}\n'
6241
85abf58c3d8c topic: namespace template keyword
Anton Shestakov <av6@dwimlabs.net>
parents: 6240
diff changeset
31 space-name
85abf58c3d8c topic: namespace template keyword
Anton Shestakov <av6@dwimlabs.net>
parents: 6240
diff changeset
32
6243
91d9a279b84a topic: fqbn template keyword
Anton Shestakov <av6@dwimlabs.net>
parents: 6241
diff changeset
33 $ hg log -r 'wdir()' -T '{fqbn}\n'
6552
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
34 default//space-name/feature
6243
91d9a279b84a topic: fqbn template keyword
Anton Shestakov <av6@dwimlabs.net>
parents: 6241
diff changeset
35
6610
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
36 Non-ascii topic namespace name
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
37
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
38 $ hg debug-topic-namespace --clear
6661
b33bf56ce558 tests: show .hg/topic-namespace in a couple of places in test-namespaces.t
Anton Shestakov <av6@dwimlabs.net>
parents: 6660
diff changeset
39 $ test -f .hg/topic-namespace
b33bf56ce558 tests: show .hg/topic-namespace in a couple of places in test-namespaces.t
Anton Shestakov <av6@dwimlabs.net>
parents: 6660
diff changeset
40 [1]
6610
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
41 $ hg --encoding utf-8 debug-topic-namespace æ
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
42 marked working directory as topic namespace: \xc3\xa6 (esc)
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
43 $ hg --encoding utf-8 debug-topic-namespaces
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
44 æ (esc)
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
45 $ hg --encoding ascii debug-topic-namespaces
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
46 ? (esc)
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
47 $ hg --encoding latin1 debug-topic-namespaces
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
48 \xe6 (esc)
6661
b33bf56ce558 tests: show .hg/topic-namespace in a couple of places in test-namespaces.t
Anton Shestakov <av6@dwimlabs.net>
parents: 6660
diff changeset
49 $ cat .hg/topic-namespace
b33bf56ce558 tests: show .hg/topic-namespace in a couple of places in test-namespaces.t
Anton Shestakov <av6@dwimlabs.net>
parents: 6660
diff changeset
50 \xc3\xa6 (no-eol) (esc)
6610
ae7c75c43f92 topic: properly decode topic and topic namespace after reading from disk
Anton Shestakov <av6@dwimlabs.net>
parents: 6552
diff changeset
51
6612
94bf2f307b75 topic: check that topic namespace names are human-readable like topics
Anton Shestakov <av6@dwimlabs.net>
parents: 6610
diff changeset
52 $ hg --encoding utf-8 debug-topic-namespace ©
94bf2f307b75 topic: check that topic namespace names are human-readable like topics
Anton Shestakov <av6@dwimlabs.net>
parents: 6610
diff changeset
53 abort: invalid topic namespace name: '\xc2\xa9' (esc)
94bf2f307b75 topic: check that topic namespace names are human-readable like topics
Anton Shestakov <av6@dwimlabs.net>
parents: 6610
diff changeset
54 (topic namespace names can only consist of alphanumeric, '-', '_' and '.' characters)
6687
e2fbec28654c test-compat: merge mercurial-5.7 into mercurial-5.6
Anton Shestakov <av6@dwimlabs.net>
parents: 6585 6684
diff changeset
55 [255]
6612
94bf2f307b75 topic: check that topic namespace names are human-readable like topics
Anton Shestakov <av6@dwimlabs.net>
parents: 6610
diff changeset
56
94bf2f307b75 topic: check that topic namespace names are human-readable like topics
Anton Shestakov <av6@dwimlabs.net>
parents: 6610
diff changeset
57 $ hg --encoding latin1 debug-topic-namespace æ
94bf2f307b75 topic: check that topic namespace names are human-readable like topics
Anton Shestakov <av6@dwimlabs.net>
parents: 6610
diff changeset
58 abort: invalid topic namespace name: '\xc3\xa6' (esc)
94bf2f307b75 topic: check that topic namespace names are human-readable like topics
Anton Shestakov <av6@dwimlabs.net>
parents: 6610
diff changeset
59 (topic namespace names can only consist of alphanumeric, '-', '_' and '.' characters)
6687
e2fbec28654c test-compat: merge mercurial-5.7 into mercurial-5.6
Anton Shestakov <av6@dwimlabs.net>
parents: 6585 6684
diff changeset
60 [255]
6612
94bf2f307b75 topic: check that topic namespace names are human-readable like topics
Anton Shestakov <av6@dwimlabs.net>
parents: 6610
diff changeset
61
6239
8861e33f3bb2 topic: setting current repo namespace with debug-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6238
diff changeset
62 $ hg branches
8861e33f3bb2 topic: setting current repo namespace with debug-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6238
diff changeset
63
8861e33f3bb2 topic: setting current repo namespace with debug-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6238
diff changeset
64 $ hg debug-topic-namespace --clear
6238
6bbd16579f0f topic: list namespaces with debug-namespaces
Anton Shestakov <av6@dwimlabs.net>
parents: 6237
diff changeset
65 $ hg debug-topic-namespaces
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
66
6552
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
67 $ hg topic --clear
81e89d943a4e topic: pretend changeset has no topic namespace if it doesn't have a topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6551
diff changeset
68 clearing empty topic "feature"
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
69 $ hg topics
6238
6bbd16579f0f topic: list namespaces with debug-namespaces
Anton Shestakov <av6@dwimlabs.net>
parents: 6237
diff changeset
70
6395
1328195f76a9 test-compat: merge mercurial-5.7 into mercurial-5.6
Anton Shestakov <av6@dwimlabs.net>
parents: 6392
diff changeset
71 $ hg debug-topic-namespace --clear nonsense
6239
8861e33f3bb2 topic: setting current repo namespace with debug-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6238
diff changeset
72 abort: cannot use --clear when setting a topic namespace
8861e33f3bb2 topic: setting current repo namespace with debug-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6238
diff changeset
73 [255]
8861e33f3bb2 topic: setting current repo namespace with debug-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6238
diff changeset
74
6240
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
75 $ hg branch stable
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
76 marked working directory as branch stable
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
77 (branches are permanent and global, did you want a bookmark?)
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
78 $ hg debug-topic-namespace alice
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
79 marked working directory as topic namespace: alice
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
80 $ hg topic feature
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
81 marked working directory as topic: feature
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
82 $ echo a > a
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
83 $ hg ci -qAm a
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
84
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
85 $ hg debug-topic-namespaces
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
86 alice
2686ecc90791 topic: store topic namespace in commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6239
diff changeset
87
6241
85abf58c3d8c topic: namespace template keyword
Anton Shestakov <av6@dwimlabs.net>
parents: 6240
diff changeset
88 $ hg log -r . -T '{rev}: {branch} {topic_namespace} {topic}\n'
85abf58c3d8c topic: namespace template keyword
Anton Shestakov <av6@dwimlabs.net>
parents: 6240
diff changeset
89 0: stable alice feature
85abf58c3d8c topic: namespace template keyword
Anton Shestakov <av6@dwimlabs.net>
parents: 6240
diff changeset
90
6243
91d9a279b84a topic: fqbn template keyword
Anton Shestakov <av6@dwimlabs.net>
parents: 6241
diff changeset
91 $ hg log -r . -T '{rev}: {fqbn}\n'
91d9a279b84a topic: fqbn template keyword
Anton Shestakov <av6@dwimlabs.net>
parents: 6241
diff changeset
92 0: stable//alice/feature
91d9a279b84a topic: fqbn template keyword
Anton Shestakov <av6@dwimlabs.net>
parents: 6241
diff changeset
93
6660
5e6fa2dd796a tests: show commit extras in a couple more places in test-namespaces*.t
Anton Shestakov <av6@dwimlabs.net>
parents: 6657
diff changeset
94 $ hg log -r . -T '{rev}: {join(extras, " ")}\n'
5e6fa2dd796a tests: show commit extras in a couple more places in test-namespaces*.t
Anton Shestakov <av6@dwimlabs.net>
parents: 6657
diff changeset
95 0: branch=stable topic=feature topic-namespace=alice
5e6fa2dd796a tests: show commit extras in a couple more places in test-namespaces*.t
Anton Shestakov <av6@dwimlabs.net>
parents: 6657
diff changeset
96
6271
caf302fb8f4d topic: use branch//namespace/topic format everywhere except exchange
Anton Shestakov <av6@dwimlabs.net>
parents: 6267
diff changeset
97 $ hg branches
caf302fb8f4d topic: use branch//namespace/topic format everywhere except exchange
Anton Shestakov <av6@dwimlabs.net>
parents: 6267
diff changeset
98 stable//alice/feature 0:69c7dbf6acd1
caf302fb8f4d topic: use branch//namespace/topic format everywhere except exchange
Anton Shestakov <av6@dwimlabs.net>
parents: 6267
diff changeset
99
6657
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
100 Removing topic namespace file if it contains the default value
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
101
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
102 The default value changed from b'default' to b'none' in 11.1.0, this is a
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
103 safeguard against accidentally putting the new default tns value into commit
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
104 extras with an old version of topic extension
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
105
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
106 $ printf 'none' > .hg/topic-namespace
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
107 $ test -f .hg/topic-namespace
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
108 $ hg ci -m ''
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
109 nothing changed
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
110 [1]
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
111 $ test -f .hg/topic-namespace
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
112 [1]
1c998ed77597 topic: remove .hg/topic-namespace file if it has the default value
Anton Shestakov <av6@dwimlabs.net>
parents: 6656
diff changeset
113
6245
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
114 Updating to a revision with a namespace should activate it
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
115
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
116 $ hg up null
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
117 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
118 $ hg debug-topic-namespace
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
119 none
6656
d3668c704d40 topic: use the appropriate functions to change topic and tns on wdir update
Anton Shestakov <av6@dwimlabs.net>
parents: 6612
diff changeset
120 $ test -f .hg/topic-namespace
d3668c704d40 topic: use the appropriate functions to change topic and tns on wdir update
Anton Shestakov <av6@dwimlabs.net>
parents: 6612
diff changeset
121 [1]
6245
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
122 $ hg topics
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
123 feature (1 changesets)
6656
d3668c704d40 topic: use the appropriate functions to change topic and tns on wdir update
Anton Shestakov <av6@dwimlabs.net>
parents: 6612
diff changeset
124 $ test -f .hg/topic
d3668c704d40 topic: use the appropriate functions to change topic and tns on wdir update
Anton Shestakov <av6@dwimlabs.net>
parents: 6612
diff changeset
125 [1]
6245
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
126 $ hg up 0
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
127 switching to topic-namespace alice
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
128 switching to topic feature
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
129 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
130 $ hg debug-topic-namespace
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
131 alice
6661
b33bf56ce558 tests: show .hg/topic-namespace in a couple of places in test-namespaces.t
Anton Shestakov <av6@dwimlabs.net>
parents: 6660
diff changeset
132 $ cat .hg/topic-namespace
b33bf56ce558 tests: show .hg/topic-namespace in a couple of places in test-namespaces.t
Anton Shestakov <av6@dwimlabs.net>
parents: 6660
diff changeset
133 alice (no-eol)
6245
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
134 $ hg topics
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
135 * feature (1 changesets)
6656
d3668c704d40 topic: use the appropriate functions to change topic and tns on wdir update
Anton Shestakov <av6@dwimlabs.net>
parents: 6612
diff changeset
136 $ cat .hg/topic
d3668c704d40 topic: use the appropriate functions to change topic and tns on wdir update
Anton Shestakov <av6@dwimlabs.net>
parents: 6612
diff changeset
137 feature (no-eol)
6245
a54db3e55c88 topic: switch to namespace when updating to a commit, similar to topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6243
diff changeset
138
6310
43166bd57d6c tests: addressing topic namespaces by name alone is not supported
Anton Shestakov <av6@dwimlabs.net>
parents: 6271
diff changeset
139 Updating to a topic namespace is not supported
43166bd57d6c tests: addressing topic namespaces by name alone is not supported
Anton Shestakov <av6@dwimlabs.net>
parents: 6271
diff changeset
140
43166bd57d6c tests: addressing topic namespaces by name alone is not supported
Anton Shestakov <av6@dwimlabs.net>
parents: 6271
diff changeset
141 $ hg up alice
6395
1328195f76a9 test-compat: merge mercurial-5.7 into mercurial-5.6
Anton Shestakov <av6@dwimlabs.net>
parents: 6392
diff changeset
142 abort: unknown revision 'alice'!
6392
faea18a26188 test-compat: merge mercurial-6.0 into mercurial-5.9
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
143 [255]
6310
43166bd57d6c tests: addressing topic namespaces by name alone is not supported
Anton Shestakov <av6@dwimlabs.net>
parents: 6271
diff changeset
144
6536
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
145 Export/import of topic namespaces
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
146
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
147 $ hg export
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
148 # HG changeset patch
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
149 # User test
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
150 # Date 0 0
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
151 # Thu Jan 01 00:00:00 1970 +0000
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
152 # Branch stable
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
153 # Node ID 69c7dbf6acd180eeec055dd67933badd3601d45f
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
154 # Parent 0000000000000000000000000000000000000000
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
155 # EXP-Topic-Namespace alice
6536
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
156 # EXP-Topic feature
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
157 a
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
158
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
159 diff -r 000000000000 -r 69c7dbf6acd1 a
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
160 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
161 +++ b/a Thu Jan 01 00:00:00 1970 +0000
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
162 @@ -0,0 +1,1 @@
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
163 +a
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
164
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
165 $ hg import - << EOF
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
166 > # HG changeset patch
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
167 > # User test
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
168 > # Date 0 0
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
169 > # Thu Jan 01 00:00:00 1970 +0000
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
170 > # Branch another-branch
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
171 > # Node ID 1111111111111111111111111111111111111111
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
172 > # Parent 2222222222222222222222222222222222222222
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
173 > # EXP-Topic-Namespace mynamespace
6536
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
174 > # EXP-Topic mytopic
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
175 > added z
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
176 >
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
177 > diff --git a/z b/z
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
178 > new file mode 100644
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
179 > --- /dev/null
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
180 > +++ b/z
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
181 > @@ -0,0 +1,1 @@
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
182 > +z
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
183 > EOF
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
184 applying patch from stdin
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
185
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
186 $ hg log -r tip -T '{rev}: {branch} {topic_namespace} {topic}\n'
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
187 1: stable mynamespace mytopic
6536
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
188
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
189 $ hg log -r tip -T '{rev}: {fqbn}\n'
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
190 1: stable//mynamespace/mytopic
6536
90b631fde2d7 topic: only set topic on workingcommitctx if it doesn't already have one
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
191
6550
fa14b9fc953d tests: show extras after importing a patch with topic and namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6543
diff changeset
192 $ hg log -r tip -T '{rev}: {join(extras, " ")}\n'
fa14b9fc953d tests: show extras after importing a patch with topic and namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6543
diff changeset
193 1: branch=stable topic=mytopic topic-namespace=mynamespace
fa14b9fc953d tests: show extras after importing a patch with topic and namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6543
diff changeset
194
6543
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
195 Importing a patch with default namespace and topic values
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
196
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
197 $ hg import - << EOF
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
198 > # HG changeset patch
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
199 > # User test
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
200 > # Date 0 0
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
201 > # Thu Jan 01 00:00:00 1970 +0000
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
202 > # Branch stable
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
203 > # Node ID 1111111111111111111111111111111111111111
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
204 > # Parent 2222222222222222222222222222222222222222
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
205 > # EXP-Topic-Namespace none
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
206 > # EXP-Topic
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
207 > more z
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
208 >
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
209 > diff --git a/z b/z
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
210 > --- a/z
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
211 > +++ b/z
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
212 > @@ -1,1 +1,1 @@
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
213 > -z
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
214 > +zebra
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
215 > EOF
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
216 applying patch from stdin
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
217
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
218 $ hg log -r tip -T '{rev}: {branch} {topic_namespace} {topic}\n'
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
219 2: stable none
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
220
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
221 $ hg log -r tip -T '{rev}: {fqbn}\n'
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
222 2: stable
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
223
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
224 $ hg log -r tip -T '{rev}: {join(extras, " ")}\n'
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
225 2: branch=stable
b0cbad4d841f tests: importing with default topic&namespace values doesn't add extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6542
diff changeset
226
6551
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
227 Importing a patch with topic namespace set and topic unset
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
228
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
229 $ hg import - << EOF
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
230 > # HG changeset patch
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
231 > # User test
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
232 > # Date 0 0
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
233 > # Thu Jan 01 00:00:00 1970 +0000
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
234 > # Branch stable
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
235 > # Node ID 1111111111111111111111111111111111111111
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
236 > # Parent 2222222222222222222222222222222222222222
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
237 > # EXP-Topic-Namespace mynamespace
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
238 > # EXP-Topic
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
239 > more z
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
240 >
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
241 > diff --git a/z b/z
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
242 > --- a/z
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
243 > +++ b/z
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
244 > @@ -1,1 +1,1 @@
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
245 > -zebra
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
246 > +z
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
247 > EOF
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
248 applying patch from stdin
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
249
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
250 $ hg log -r tip -T '{rev}: {branch} {topic_namespace} {topic}\n'
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
251 3: stable none
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
252
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
253 $ hg log -r tip -T '{rev}: {fqbn}\n'
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
254 3: stable
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
255
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
256 $ hg log -r tip -T '{rev}: {join(extras, " ")}\n'
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
257 3: branch=stable
198b87917ba8 tests: import a patch with topic namespace, but without topic
Anton Shestakov <av6@dwimlabs.net>
parents: 6550
diff changeset
258
6261
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
259 Revsets
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
260
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
261 $ nslog() {
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
262 > hg log -T '{rev}: {topic_namespace}\n' -r "$1"
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
263 > }
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
264
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
265 $ nslog 'topicnamespace()'
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
266 0: alice
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
267 1: mynamespace
6261
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
268 $ nslog 'topicnamespace(:)'
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
269 0: alice
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
270 1: mynamespace
6261
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
271 $ nslog 'topicnamespace(all())'
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
272 0: alice
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
273 1: mynamespace
6261
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
274 $ nslog 'topicnamespace(topicnamespace("alice"))'
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
275 0: alice
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
276 $ nslog 'topicnamespace(wdir())'
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
277 0: alice
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
278 $ nslog 'topicnamespace("re:ice$")'
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
279 0: alice
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
280 $ nslog 'topicnamespace(nonsense)'
6395
1328195f76a9 test-compat: merge mercurial-5.7 into mercurial-5.6
Anton Shestakov <av6@dwimlabs.net>
parents: 6392
diff changeset
281 abort: unknown revision 'nonsense'!
6392
faea18a26188 test-compat: merge mercurial-6.0 into mercurial-5.9
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
282 [255]
6261
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
283
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
284 $ nslog 'topicnamespace("re:nonsense")'
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
285 $ nslog 'topicnamespace("literal:nonsense")'
6395
1328195f76a9 test-compat: merge mercurial-5.7 into mercurial-5.6
Anton Shestakov <av6@dwimlabs.net>
parents: 6392
diff changeset
286 abort: topic namespace 'nonsense' does not exist!
6392
faea18a26188 test-compat: merge mercurial-6.0 into mercurial-5.9
Anton Shestakov <av6@dwimlabs.net>
parents: 6310
diff changeset
287 [255]
6261
a2491c578d2b topic: namespace revset predicate
Anton Shestakov <av6@dwimlabs.net>
parents: 6245
diff changeset
288
6738
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
289 Debug command related to the default/empty topic namespace
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
290
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
291 $ hg debug-topic-namespace --clear
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
292
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
293 $ echo none > none
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
294 $ hg ci -qAm 'tns=none' \
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
295 > --config extensions.topic=! \
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
296 > --config extensions.commitextras= \
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
297 > --extra topic-namespace=none
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
298
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
299
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
300 $ echo default > default
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
301 $ hg ci -qAm 'tns=default' \
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
302 > --config extensions.topic=! \
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
303 > --config extensions.commitextras= \
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
304 > --extra topic-namespace=default
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
305
6739
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
306 $ hg debug-default-topic-namespace \
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
307 > --debug \
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
308 > | grep extra
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
309 extra: branch=stable
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
310 extra: topic-namespace=none
6738
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
311
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
312 $ hg debug-default-topic-namespace \
6739
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
313 > --no-none \
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
314 > --default \
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
315 > --debug \
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
316 > | grep extra
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
317 extra: branch=stable
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
318 extra: topic-namespace=default
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
319
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
320 $ hg debug-default-topic-namespace \
c94690f59bea topic: allow selecting a specific tns value in debug-default-topic-namespace
Anton Shestakov <av6@dwimlabs.net>
parents: 6738
diff changeset
321 > --default \
6738
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
322 > -T '{rev}:{node|short} {join(extras, " ")}\n'
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
323 4:29a2d0acd473 branch=stable topic-namespace=none
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
324 5:16d6061fce0c branch=stable topic-namespace=default
cf37748874f4 topic: add a simple debug command to list changesets with problematic tns
Anton Shestakov <av6@dwimlabs.net>
parents: 6661
diff changeset
325
6740
d959abd665fd topic: teach debug-default-topic-namespace how to clean commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6739
diff changeset
326 $ hg debug-default-topic-namespace --none --default --clear
d959abd665fd topic: teach debug-default-topic-namespace how to clean commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6739
diff changeset
327
6741
cd22d260d8cc tests: run debug-default-topic-namespace after --clear, but before evolve
Anton Shestakov <av6@dwimlabs.net>
parents: 6740
diff changeset
328 $ hg debug-default-topic-namespace --none --default
cd22d260d8cc tests: run debug-default-topic-namespace after --clear, but before evolve
Anton Shestakov <av6@dwimlabs.net>
parents: 6740
diff changeset
329
6749
107c5af631a7 topic: make debug-default-topic-namespace --clear slightly smarter
Anton Shestakov <av6@dwimlabs.net>
parents: 6741
diff changeset
330 $ hg evolve --config extensions.evolve= --list
107c5af631a7 topic: make debug-default-topic-namespace --clear slightly smarter
Anton Shestakov <av6@dwimlabs.net>
parents: 6741
diff changeset
331
6740
d959abd665fd topic: teach debug-default-topic-namespace how to clean commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6739
diff changeset
332 $ hg evolve --config extensions.evolve= --any
d959abd665fd topic: teach debug-default-topic-namespace how to clean commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6739
diff changeset
333 update:[7] tns=default
d959abd665fd topic: teach debug-default-topic-namespace how to clean commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6739
diff changeset
334 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
6749
107c5af631a7 topic: make debug-default-topic-namespace --clear slightly smarter
Anton Shestakov <av6@dwimlabs.net>
parents: 6741
diff changeset
335 working directory is now at 38c9ea9d27a7
6740
d959abd665fd topic: teach debug-default-topic-namespace how to clean commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6739
diff changeset
336
d959abd665fd topic: teach debug-default-topic-namespace how to clean commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6739
diff changeset
337 $ hg debug-default-topic-namespace --none --default
d959abd665fd topic: teach debug-default-topic-namespace how to clean commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6739
diff changeset
338
d959abd665fd topic: teach debug-default-topic-namespace how to clean commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6739
diff changeset
339 $ hg verify --quiet
d959abd665fd topic: teach debug-default-topic-namespace how to clean commit extras
Anton Shestakov <av6@dwimlabs.net>
parents: 6739
diff changeset
340
6236
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
341 Parsing
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
342
6395
1328195f76a9 test-compat: merge mercurial-5.7 into mercurial-5.6
Anton Shestakov <av6@dwimlabs.net>
parents: 6392
diff changeset
343 $ hg debug-parse-fqbn foo/bar//user26/feature -T '[{branch}] <{topic_namespace}> ({topic})\n'
6236
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
344 [foo/bar] <user26> (feature)
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
345
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
346 no double slashes means it's a named branch
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
347 $ hg debug-parse-fqbn foo/bar
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
348 branch: foo/bar
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
349 namespace: none
6236
7ad8107d953a topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
350 topic:
6237
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
351
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
352 Formatting
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
353
6395
1328195f76a9 test-compat: merge mercurial-5.7 into mercurial-5.6
Anton Shestakov <av6@dwimlabs.net>
parents: 6392
diff changeset
354 $ hg debug-format-fqbn -b branch -n namespace -t topic
6237
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
355 branch//namespace/topic
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
356
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
357 $ hg debug-format-fqbn -n namespace
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
358 //namespace/
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
359
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
360 $ hg debug-format-fqbn -b foo/bar -n user26 -t feature
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
361 foo/bar//user26/feature
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
362
6266
213db29a19e9 topic: ability to shorten branch//namespace/topic strings when possible
Anton Shestakov <av6@dwimlabs.net>
parents: 6261
diff changeset
363 default values
213db29a19e9 topic: ability to shorten branch//namespace/topic strings when possible
Anton Shestakov <av6@dwimlabs.net>
parents: 6261
diff changeset
364
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
365 $ hg debug-format-fqbn -b default -n none -t '' --no-short
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
366 default//none/
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
367 $ hg debug-format-fqbn -b default -n none -t '' --short
6266
213db29a19e9 topic: ability to shorten branch//namespace/topic strings when possible
Anton Shestakov <av6@dwimlabs.net>
parents: 6261
diff changeset
368 default
213db29a19e9 topic: ability to shorten branch//namespace/topic strings when possible
Anton Shestakov <av6@dwimlabs.net>
parents: 6261
diff changeset
369
6267
1eb543272657 topic: switch to the short fqbn format by default
Anton Shestakov <av6@dwimlabs.net>
parents: 6266
diff changeset
370 $ hg debug-format-fqbn -b default -n namespace -t '' --no-short
6266
213db29a19e9 topic: ability to shorten branch//namespace/topic strings when possible
Anton Shestakov <av6@dwimlabs.net>
parents: 6261
diff changeset
371 default//namespace/
213db29a19e9 topic: ability to shorten branch//namespace/topic strings when possible
Anton Shestakov <av6@dwimlabs.net>
parents: 6261
diff changeset
372 $ hg debug-format-fqbn -b default -n namespace -t '' --short
213db29a19e9 topic: ability to shorten branch//namespace/topic strings when possible
Anton Shestakov <av6@dwimlabs.net>
parents: 6261
diff changeset
373 default//namespace/
213db29a19e9 topic: ability to shorten branch//namespace/topic strings when possible
Anton Shestakov <av6@dwimlabs.net>
parents: 6261
diff changeset
374
6542
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
375 $ hg debug-format-fqbn -b default -n none -t topic --no-short
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
376 default//none/topic
ca1c219bd59f branching: merge with stable
Anton Shestakov <av6@dwimlabs.net>
parents: 6536
diff changeset
377 $ hg debug-format-fqbn -b default -n none -t topic --short
6266
213db29a19e9 topic: ability to shorten branch//namespace/topic strings when possible
Anton Shestakov <av6@dwimlabs.net>
parents: 6261
diff changeset
378 default//topic
213db29a19e9 topic: ability to shorten branch//namespace/topic strings when possible
Anton Shestakov <av6@dwimlabs.net>
parents: 6261
diff changeset
379
6237
0b9042408809 topic: formatting branch, namespace and topic into fully qualified branch name
Anton Shestakov <av6@dwimlabs.net>
parents: 6236
diff changeset
380 $ cd ..