Mercurial > evolve
comparison tests/test-extension-isolation.t @ 4479:2db0aca03a88 stable
extensions: avoid enabling evolve for unrelated repositories (issue6057)
The support for the `experimental.evolve` config have been there forever. So we
can stop using the global variable. This help avoiding evolve to enable itself
of repository that did not explicitly activated it. For example, this is useful
for hgwebdir.
Before this change, evolution feature had to be explicitly disabled or enabled
in every single repository.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 09 Apr 2019 20:45:36 +0200 |
parents | |
children | 77f3699e711e |
comparison
equal
deleted
inserted
replaced
4463:7d54a538dd1e | 4479:2db0aca03a88 |
---|---|
1 ============================ | |
2 Testing extensions isolation | |
3 ============================ | |
4 | |
5 In this test case, we check that a repository using the extensions can co-exist | |
6 with a repository not using the extension. | |
7 | |
8 $ . $TESTDIR/testlib/common.sh | |
9 | |
10 Setup | |
11 ===== | |
12 | |
13 Create repo | |
14 | |
15 $ hg init repo-evo | |
16 $ cat > repo-evo/.hg/hgrc << EOF | |
17 > [extensions] | |
18 > evolve= | |
19 > EOF | |
20 $ hg init repo-topic | |
21 $ cat > repo-topic/.hg/hgrc << EOF | |
22 > [extensions] | |
23 > topic= | |
24 > EOF | |
25 $ hg init repo-both | |
26 $ cat > repo-both/.hg/hgrc << EOF | |
27 > [extensions] | |
28 > evolve= | |
29 > topic= | |
30 > EOF | |
31 $ hg init repo-no-ext | |
32 | |
33 check setup | |
34 | |
35 $ hg -R repo-evo help -e evolve | head -n 1 | |
36 warning: --repository ignored | |
37 evolve extension - extends Mercurial feature related to Changeset Evolution | |
38 $ hg -R repo-both help -e evolve | head -n 1 | |
39 warning: --repository ignored | |
40 evolve extension - extends Mercurial feature related to Changeset Evolution | |
41 $ hg -R repo-no-ext help -e evolve | |
42 warning: --repository ignored | |
43 abort: no such help topic: evolve | |
44 (try 'hg help --keyword evolve') | |
45 [255] | |
46 $ hg -R repo-no-ext help -e topic | |
47 warning: --repository ignored | |
48 abort: no such help topic: topic | |
49 (try 'hg help --keyword topic') | |
50 [255] | |
51 | |
52 start hgweb dir for all repo | |
53 | |
54 $ cat > hgweb.conf << EOF | |
55 > [paths] | |
56 > / = * | |
57 > EOF | |
58 | |
59 $ hg serve -p $HGPORT -d --pid-file=hg.pid --web-conf hgweb.conf -A access.log -E error.log | |
60 $ cat hg.pid >> $DAEMON_PIDS | |
61 | |
62 Test isolation | |
63 -------------- | |
64 | |
65 As of 4.9 (and previous version). It seems like extensions are displayed as | |
66 enabled even for repository where they are not supposed to be. See the output | |
67 tagged `no-false`. | |
68 | |
69 (however, topic and evolve are not supposed to affect other repository as shown | |
70 in the rest of this test). | |
71 | |
72 $ get-with-headers.py $LOCALIP:$HGPORT 'repo-no-ext/help/extensions' | grep 'enabled extensions' -A 7 | |
73 [1] | |
74 $ get-with-headers.py $LOCALIP:$HGPORT 'repo-evo/help/extensions' | grep 'enabled extensions' -A 7 | |
75 enabled extensions: | |
76 </p> | |
77 <dl> | |
78 <dt>evolve | |
79 <dd>extends Mercurial feature related to Changeset Evolution | |
80 </dl> | |
81 <p> | |
82 disabled extensions: | |
83 $ get-with-headers.py $LOCALIP:$HGPORT 'repo-topic/help/extensions' | grep 'enabled extensions' -A 7 | |
84 enabled extensions: | |
85 </p> | |
86 <dl> | |
87 <dt>evolve (no-false !) | |
88 <dd>extends Mercurial feature related to Changeset Evolution (no-false !) | |
89 <dt>topic | |
90 <dd>support for topic branches | |
91 </dl> | |
92 $ get-with-headers.py $LOCALIP:$HGPORT 'repo-both/help/extensions' | grep 'enabled extensions' -A 9 | |
93 enabled extensions: | |
94 </p> | |
95 <dl> | |
96 <dt>evolve | |
97 <dd>extends Mercurial feature related to Changeset Evolution | |
98 <dt>topic | |
99 <dd>support for topic branches | |
100 </dl> | |
101 <p> | |
102 disabled extensions: | |
103 $ get-with-headers.py $LOCALIP:$HGPORT 'repo-no-ext/help/extensions' | grep 'enabled extensions' -A 9 | |
104 enabled extensions: (no-false !) | |
105 </p> (no-false !) | |
106 <dl> (no-false !) | |
107 <dt>evolve (no-false !) | |
108 <dd>extends Mercurial feature related to Changeset Evolution (no-false !) | |
109 <dt>topic (no-false !) | |
110 <dd>support for topic branches (no-false !) | |
111 </dl> (no-false !) | |
112 <p> (no-false !) | |
113 disabled extensions: (no-false !) | |
114 | |
115 make sure repos don't affect each other (and check both ways) | |
116 | |
117 Check evolve isolation | |
118 ----------------------- | |
119 | |
120 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' | |
121 [1] | |
122 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-evo | egrep 'topics|evoext' | |
123 _evoext_getbundle_obscommon | |
124 _evoext_obshash_0 | |
125 _evoext_obshash_1 | |
126 _evoext_obshashrange_v1 | |
127 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' | |
128 [1] | |
129 | |
130 Check topic isolation | |
131 --------------------- | |
132 | |
133 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' | |
134 [1] | |
135 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-topic | egrep 'topics|evoext' | |
136 topics | |
137 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' | |
138 [1] | |
139 | |
140 Check coupled isolation | |
141 ----------------------- | |
142 | |
143 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' | |
144 [1] | |
145 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-both | egrep 'topics|evoext' | |
146 _evoext_getbundle_obscommon | |
147 _evoext_obshash_0 | |
148 _evoext_obshash_1 | |
149 _evoext_obshashrange_v1 | |
150 topics | |
151 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-evo | egrep 'topics|evoext' | |
152 _evoext_getbundle_obscommon | |
153 _evoext_obshash_0 | |
154 _evoext_obshash_1 | |
155 _evoext_obshashrange_v1 | |
156 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-topic | egrep 'topics|evoext' | |
157 topics | |
158 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-evo | egrep 'topics|evoext' | |
159 _evoext_getbundle_obscommon | |
160 _evoext_obshash_0 | |
161 _evoext_obshash_1 | |
162 _evoext_obshashrange_v1 | |
163 $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' | |
164 [1] | |
165 | |
166 Final cleanup | |
167 ------------- | |
168 | |
169 $ cat error.log | |
170 | |
171 $ $RUNTESTDIR/killdaemons.py $DAEMON_PIDS |