##// END OF EJS Templates
tests: remove bundle2 activation from test-acl.t...
Pierre-Yves David -
r29654:d8e5ce50 default
parent child Browse files
Show More
@@ -1,2155 +1,2148
1 > do_push()
1 > do_push()
2 > {
2 > {
3 > user=$1
3 > user=$1
4 > shift
4 > shift
5 > echo "Pushing as user $user"
5 > echo "Pushing as user $user"
6 > echo 'hgrc = """'
6 > echo 'hgrc = """'
7 > sed -n '/\[[ha]/,$p' b/.hg/hgrc | grep -v fakegroups.py
7 > sed -n '/\[[ha]/,$p' b/.hg/hgrc | grep -v fakegroups.py
8 > echo '"""'
8 > echo '"""'
9 > if test -f acl.config; then
9 > if test -f acl.config; then
10 > echo 'acl.config = """'
10 > echo 'acl.config = """'
11 > cat acl.config
11 > cat acl.config
12 > echo '"""'
12 > echo '"""'
13 > fi
13 > fi
14 > # On AIX /etc/profile sets LOGNAME read-only. So
14 > # On AIX /etc/profile sets LOGNAME read-only. So
15 > # LOGNAME=$user hg --cws a --debug push ../b
15 > # LOGNAME=$user hg --cws a --debug push ../b
16 > # fails with "This variable is read only."
16 > # fails with "This variable is read only."
17 > # Use env to work around this.
17 > # Use env to work around this.
18 > env LOGNAME=$user hg --cwd a --debug push ../b
18 > env LOGNAME=$user hg --cwd a --debug push ../b
19 > hg --cwd b rollback
19 > hg --cwd b rollback
20 > hg --cwd b --quiet tip
20 > hg --cwd b --quiet tip
21 > echo
21 > echo
22 > }
22 > }
23
23
24 > init_config()
24 > init_config()
25 > {
25 > {
26 > cat > fakegroups.py <<EOF
26 > cat > fakegroups.py <<EOF
27 > from hgext import acl
27 > from hgext import acl
28 > def fakegetusers(ui, group):
28 > def fakegetusers(ui, group):
29 > try:
29 > try:
30 > return acl._getusersorig(ui, group)
30 > return acl._getusersorig(ui, group)
31 > except:
31 > except:
32 > return ["fred", "betty"]
32 > return ["fred", "betty"]
33 > acl._getusersorig = acl._getusers
33 > acl._getusersorig = acl._getusers
34 > acl._getusers = fakegetusers
34 > acl._getusers = fakegetusers
35 > EOF
35 > EOF
36 > rm -f acl.config
36 > rm -f acl.config
37 > cat > $config <<EOF
37 > cat > $config <<EOF
38 > [hooks]
38 > [hooks]
39 > pretxnchangegroup.acl = python:hgext.acl.hook
39 > pretxnchangegroup.acl = python:hgext.acl.hook
40 > [acl]
40 > [acl]
41 > sources = push
41 > sources = push
42 > [extensions]
42 > [extensions]
43 > f=`pwd`/fakegroups.py
43 > f=`pwd`/fakegroups.py
44 > EOF
44 > EOF
45 > }
45 > }
46
46
47 $ cat << EOF >> $HGRCPATH
48 > [experimental]
49 > # drop me once bundle2 is the default,
50 > # added to get test change early.
51 > bundle2-exp = True
52 > EOF
53
54 $ hg init a
47 $ hg init a
55 $ cd a
48 $ cd a
56 $ mkdir foo foo/Bar quux
49 $ mkdir foo foo/Bar quux
57 $ echo 'in foo' > foo/file.txt
50 $ echo 'in foo' > foo/file.txt
58 $ echo 'in foo/Bar' > foo/Bar/file.txt
51 $ echo 'in foo/Bar' > foo/Bar/file.txt
59 $ echo 'in quux' > quux/file.py
52 $ echo 'in quux' > quux/file.py
60 $ hg add -q
53 $ hg add -q
61 $ hg ci -m 'add files' -d '1000000 0'
54 $ hg ci -m 'add files' -d '1000000 0'
62 $ echo >> foo/file.txt
55 $ echo >> foo/file.txt
63 $ hg ci -m 'change foo/file' -d '1000001 0'
56 $ hg ci -m 'change foo/file' -d '1000001 0'
64 $ echo >> foo/Bar/file.txt
57 $ echo >> foo/Bar/file.txt
65 $ hg ci -m 'change foo/Bar/file' -d '1000002 0'
58 $ hg ci -m 'change foo/Bar/file' -d '1000002 0'
66 $ echo >> quux/file.py
59 $ echo >> quux/file.py
67 $ hg ci -m 'change quux/file' -d '1000003 0'
60 $ hg ci -m 'change quux/file' -d '1000003 0'
68 $ hg tip --quiet
61 $ hg tip --quiet
69 3:911600dab2ae
62 3:911600dab2ae
70
63
71 $ cd ..
64 $ cd ..
72 $ hg clone -r 0 a b
65 $ hg clone -r 0 a b
73 adding changesets
66 adding changesets
74 adding manifests
67 adding manifests
75 adding file changes
68 adding file changes
76 added 1 changesets with 3 changes to 3 files
69 added 1 changesets with 3 changes to 3 files
77 updating to branch default
70 updating to branch default
78 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
71 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
79
72
80 $ config=b/.hg/hgrc
73 $ config=b/.hg/hgrc
81
74
82 Extension disabled for lack of a hook
75 Extension disabled for lack of a hook
83
76
84 $ do_push fred
77 $ do_push fred
85 Pushing as user fred
78 Pushing as user fred
86 hgrc = """
79 hgrc = """
87 """
80 """
88 pushing to ../b
81 pushing to ../b
89 query 1; heads
82 query 1; heads
90 searching for changes
83 searching for changes
91 all remote heads known locally
84 all remote heads known locally
92 listing keys for "phases"
85 listing keys for "phases"
93 checking for updated bookmarks
86 checking for updated bookmarks
94 listing keys for "bookmarks"
87 listing keys for "bookmarks"
95 listing keys for "bookmarks"
88 listing keys for "bookmarks"
96 3 changesets found
89 3 changesets found
97 list of changesets:
90 list of changesets:
98 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
91 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
99 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
92 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
100 911600dab2ae7a9baff75958b84fe606851ce955
93 911600dab2ae7a9baff75958b84fe606851ce955
101 bundle2-output-bundle: "HG20", 4 parts total
94 bundle2-output-bundle: "HG20", 4 parts total
102 bundle2-output-part: "replycaps" 155 bytes payload
95 bundle2-output-part: "replycaps" 155 bytes payload
103 bundle2-output-part: "check:heads" streamed payload
96 bundle2-output-part: "check:heads" streamed payload
104 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
97 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
105 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
98 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
106 bundle2-input-bundle: with-transaction
99 bundle2-input-bundle: with-transaction
107 bundle2-input-part: "replycaps" supported
100 bundle2-input-part: "replycaps" supported
108 bundle2-input-part: total payload size 155
101 bundle2-input-part: total payload size 155
109 bundle2-input-part: "check:heads" supported
102 bundle2-input-part: "check:heads" supported
110 bundle2-input-part: total payload size 20
103 bundle2-input-part: total payload size 20
111 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
104 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
112 adding changesets
105 adding changesets
113 add changeset ef1ea85a6374
106 add changeset ef1ea85a6374
114 add changeset f9cafe1212c8
107 add changeset f9cafe1212c8
115 add changeset 911600dab2ae
108 add changeset 911600dab2ae
116 adding manifests
109 adding manifests
117 adding file changes
110 adding file changes
118 adding foo/Bar/file.txt revisions
111 adding foo/Bar/file.txt revisions
119 adding foo/file.txt revisions
112 adding foo/file.txt revisions
120 adding quux/file.py revisions
113 adding quux/file.py revisions
121 added 3 changesets with 3 changes to 3 files
114 added 3 changesets with 3 changes to 3 files
122 bundle2-input-part: total payload size 1606
115 bundle2-input-part: total payload size 1606
123 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
116 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
124 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
117 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
125 bundle2-input-bundle: 3 parts total
118 bundle2-input-bundle: 3 parts total
126 updating the branch cache
119 updating the branch cache
127 bundle2-output-bundle: "HG20", 2 parts total
120 bundle2-output-bundle: "HG20", 2 parts total
128 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
121 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
129 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
122 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
130 bundle2-input-bundle: with-transaction
123 bundle2-input-bundle: with-transaction
131 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
124 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
132 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
125 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
133 bundle2-input-bundle: 1 parts total
126 bundle2-input-bundle: 1 parts total
134 listing keys for "phases"
127 listing keys for "phases"
135 repository tip rolled back to revision 0 (undo push)
128 repository tip rolled back to revision 0 (undo push)
136 0:6675d58eff77
129 0:6675d58eff77
137
130
138
131
139 $ echo '[hooks]' >> $config
132 $ echo '[hooks]' >> $config
140 $ echo 'pretxnchangegroup.acl = python:hgext.acl.hook' >> $config
133 $ echo 'pretxnchangegroup.acl = python:hgext.acl.hook' >> $config
141
134
142 Extension disabled for lack of acl.sources
135 Extension disabled for lack of acl.sources
143
136
144 $ do_push fred
137 $ do_push fred
145 Pushing as user fred
138 Pushing as user fred
146 hgrc = """
139 hgrc = """
147 [hooks]
140 [hooks]
148 pretxnchangegroup.acl = python:hgext.acl.hook
141 pretxnchangegroup.acl = python:hgext.acl.hook
149 """
142 """
150 pushing to ../b
143 pushing to ../b
151 query 1; heads
144 query 1; heads
152 searching for changes
145 searching for changes
153 all remote heads known locally
146 all remote heads known locally
154 listing keys for "phases"
147 listing keys for "phases"
155 checking for updated bookmarks
148 checking for updated bookmarks
156 listing keys for "bookmarks"
149 listing keys for "bookmarks"
157 invalid branchheads cache (served): tip differs
150 invalid branchheads cache (served): tip differs
158 listing keys for "bookmarks"
151 listing keys for "bookmarks"
159 3 changesets found
152 3 changesets found
160 list of changesets:
153 list of changesets:
161 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
154 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
162 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
155 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
163 911600dab2ae7a9baff75958b84fe606851ce955
156 911600dab2ae7a9baff75958b84fe606851ce955
164 bundle2-output-bundle: "HG20", 4 parts total
157 bundle2-output-bundle: "HG20", 4 parts total
165 bundle2-output-part: "replycaps" 155 bytes payload
158 bundle2-output-part: "replycaps" 155 bytes payload
166 bundle2-output-part: "check:heads" streamed payload
159 bundle2-output-part: "check:heads" streamed payload
167 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
160 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
168 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
161 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
169 bundle2-input-bundle: with-transaction
162 bundle2-input-bundle: with-transaction
170 bundle2-input-part: "replycaps" supported
163 bundle2-input-part: "replycaps" supported
171 bundle2-input-part: total payload size 155
164 bundle2-input-part: total payload size 155
172 bundle2-input-part: "check:heads" supported
165 bundle2-input-part: "check:heads" supported
173 bundle2-input-part: total payload size 20
166 bundle2-input-part: total payload size 20
174 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
167 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
175 adding changesets
168 adding changesets
176 add changeset ef1ea85a6374
169 add changeset ef1ea85a6374
177 add changeset f9cafe1212c8
170 add changeset f9cafe1212c8
178 add changeset 911600dab2ae
171 add changeset 911600dab2ae
179 adding manifests
172 adding manifests
180 adding file changes
173 adding file changes
181 adding foo/Bar/file.txt revisions
174 adding foo/Bar/file.txt revisions
182 adding foo/file.txt revisions
175 adding foo/file.txt revisions
183 adding quux/file.py revisions
176 adding quux/file.py revisions
184 added 3 changesets with 3 changes to 3 files
177 added 3 changesets with 3 changes to 3 files
185 calling hook pretxnchangegroup.acl: hgext.acl.hook
178 calling hook pretxnchangegroup.acl: hgext.acl.hook
186 acl: changes have source "push" - skipping
179 acl: changes have source "push" - skipping
187 bundle2-input-part: total payload size 1606
180 bundle2-input-part: total payload size 1606
188 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
181 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
189 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
182 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
190 bundle2-input-bundle: 3 parts total
183 bundle2-input-bundle: 3 parts total
191 updating the branch cache
184 updating the branch cache
192 bundle2-output-bundle: "HG20", 2 parts total
185 bundle2-output-bundle: "HG20", 2 parts total
193 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
186 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
194 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
187 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
195 bundle2-input-bundle: with-transaction
188 bundle2-input-bundle: with-transaction
196 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
189 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
197 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
190 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
198 bundle2-input-bundle: 1 parts total
191 bundle2-input-bundle: 1 parts total
199 listing keys for "phases"
192 listing keys for "phases"
200 repository tip rolled back to revision 0 (undo push)
193 repository tip rolled back to revision 0 (undo push)
201 0:6675d58eff77
194 0:6675d58eff77
202
195
203
196
204 No [acl.allow]/[acl.deny]
197 No [acl.allow]/[acl.deny]
205
198
206 $ echo '[acl]' >> $config
199 $ echo '[acl]' >> $config
207 $ echo 'sources = push' >> $config
200 $ echo 'sources = push' >> $config
208 $ do_push fred
201 $ do_push fred
209 Pushing as user fred
202 Pushing as user fred
210 hgrc = """
203 hgrc = """
211 [hooks]
204 [hooks]
212 pretxnchangegroup.acl = python:hgext.acl.hook
205 pretxnchangegroup.acl = python:hgext.acl.hook
213 [acl]
206 [acl]
214 sources = push
207 sources = push
215 """
208 """
216 pushing to ../b
209 pushing to ../b
217 query 1; heads
210 query 1; heads
218 searching for changes
211 searching for changes
219 all remote heads known locally
212 all remote heads known locally
220 listing keys for "phases"
213 listing keys for "phases"
221 checking for updated bookmarks
214 checking for updated bookmarks
222 listing keys for "bookmarks"
215 listing keys for "bookmarks"
223 invalid branchheads cache (served): tip differs
216 invalid branchheads cache (served): tip differs
224 listing keys for "bookmarks"
217 listing keys for "bookmarks"
225 3 changesets found
218 3 changesets found
226 list of changesets:
219 list of changesets:
227 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
220 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
228 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
221 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
229 911600dab2ae7a9baff75958b84fe606851ce955
222 911600dab2ae7a9baff75958b84fe606851ce955
230 bundle2-output-bundle: "HG20", 4 parts total
223 bundle2-output-bundle: "HG20", 4 parts total
231 bundle2-output-part: "replycaps" 155 bytes payload
224 bundle2-output-part: "replycaps" 155 bytes payload
232 bundle2-output-part: "check:heads" streamed payload
225 bundle2-output-part: "check:heads" streamed payload
233 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
226 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
234 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
227 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
235 bundle2-input-bundle: with-transaction
228 bundle2-input-bundle: with-transaction
236 bundle2-input-part: "replycaps" supported
229 bundle2-input-part: "replycaps" supported
237 bundle2-input-part: total payload size 155
230 bundle2-input-part: total payload size 155
238 bundle2-input-part: "check:heads" supported
231 bundle2-input-part: "check:heads" supported
239 bundle2-input-part: total payload size 20
232 bundle2-input-part: total payload size 20
240 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
233 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
241 adding changesets
234 adding changesets
242 add changeset ef1ea85a6374
235 add changeset ef1ea85a6374
243 add changeset f9cafe1212c8
236 add changeset f9cafe1212c8
244 add changeset 911600dab2ae
237 add changeset 911600dab2ae
245 adding manifests
238 adding manifests
246 adding file changes
239 adding file changes
247 adding foo/Bar/file.txt revisions
240 adding foo/Bar/file.txt revisions
248 adding foo/file.txt revisions
241 adding foo/file.txt revisions
249 adding quux/file.py revisions
242 adding quux/file.py revisions
250 added 3 changesets with 3 changes to 3 files
243 added 3 changesets with 3 changes to 3 files
251 calling hook pretxnchangegroup.acl: hgext.acl.hook
244 calling hook pretxnchangegroup.acl: hgext.acl.hook
252 acl: checking access for user "fred"
245 acl: checking access for user "fred"
253 acl: acl.allow.branches not enabled
246 acl: acl.allow.branches not enabled
254 acl: acl.deny.branches not enabled
247 acl: acl.deny.branches not enabled
255 acl: acl.allow not enabled
248 acl: acl.allow not enabled
256 acl: acl.deny not enabled
249 acl: acl.deny not enabled
257 acl: branch access granted: "ef1ea85a6374" on branch "default"
250 acl: branch access granted: "ef1ea85a6374" on branch "default"
258 acl: path access granted: "ef1ea85a6374"
251 acl: path access granted: "ef1ea85a6374"
259 acl: branch access granted: "f9cafe1212c8" on branch "default"
252 acl: branch access granted: "f9cafe1212c8" on branch "default"
260 acl: path access granted: "f9cafe1212c8"
253 acl: path access granted: "f9cafe1212c8"
261 acl: branch access granted: "911600dab2ae" on branch "default"
254 acl: branch access granted: "911600dab2ae" on branch "default"
262 acl: path access granted: "911600dab2ae"
255 acl: path access granted: "911600dab2ae"
263 bundle2-input-part: total payload size 1606
256 bundle2-input-part: total payload size 1606
264 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
257 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
265 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
258 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
266 bundle2-input-bundle: 3 parts total
259 bundle2-input-bundle: 3 parts total
267 updating the branch cache
260 updating the branch cache
268 bundle2-output-bundle: "HG20", 2 parts total
261 bundle2-output-bundle: "HG20", 2 parts total
269 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
262 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
270 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
263 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
271 bundle2-input-bundle: with-transaction
264 bundle2-input-bundle: with-transaction
272 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
265 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
273 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
266 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
274 bundle2-input-bundle: 1 parts total
267 bundle2-input-bundle: 1 parts total
275 listing keys for "phases"
268 listing keys for "phases"
276 repository tip rolled back to revision 0 (undo push)
269 repository tip rolled back to revision 0 (undo push)
277 0:6675d58eff77
270 0:6675d58eff77
278
271
279
272
280 Empty [acl.allow]
273 Empty [acl.allow]
281
274
282 $ echo '[acl.allow]' >> $config
275 $ echo '[acl.allow]' >> $config
283 $ do_push fred
276 $ do_push fred
284 Pushing as user fred
277 Pushing as user fred
285 hgrc = """
278 hgrc = """
286 [hooks]
279 [hooks]
287 pretxnchangegroup.acl = python:hgext.acl.hook
280 pretxnchangegroup.acl = python:hgext.acl.hook
288 [acl]
281 [acl]
289 sources = push
282 sources = push
290 [acl.allow]
283 [acl.allow]
291 """
284 """
292 pushing to ../b
285 pushing to ../b
293 query 1; heads
286 query 1; heads
294 searching for changes
287 searching for changes
295 all remote heads known locally
288 all remote heads known locally
296 listing keys for "phases"
289 listing keys for "phases"
297 checking for updated bookmarks
290 checking for updated bookmarks
298 listing keys for "bookmarks"
291 listing keys for "bookmarks"
299 invalid branchheads cache (served): tip differs
292 invalid branchheads cache (served): tip differs
300 listing keys for "bookmarks"
293 listing keys for "bookmarks"
301 3 changesets found
294 3 changesets found
302 list of changesets:
295 list of changesets:
303 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
296 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
304 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
297 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
305 911600dab2ae7a9baff75958b84fe606851ce955
298 911600dab2ae7a9baff75958b84fe606851ce955
306 bundle2-output-bundle: "HG20", 4 parts total
299 bundle2-output-bundle: "HG20", 4 parts total
307 bundle2-output-part: "replycaps" 155 bytes payload
300 bundle2-output-part: "replycaps" 155 bytes payload
308 bundle2-output-part: "check:heads" streamed payload
301 bundle2-output-part: "check:heads" streamed payload
309 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
302 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
310 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
303 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
311 bundle2-input-bundle: with-transaction
304 bundle2-input-bundle: with-transaction
312 bundle2-input-part: "replycaps" supported
305 bundle2-input-part: "replycaps" supported
313 bundle2-input-part: total payload size 155
306 bundle2-input-part: total payload size 155
314 bundle2-input-part: "check:heads" supported
307 bundle2-input-part: "check:heads" supported
315 bundle2-input-part: total payload size 20
308 bundle2-input-part: total payload size 20
316 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
309 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
317 adding changesets
310 adding changesets
318 add changeset ef1ea85a6374
311 add changeset ef1ea85a6374
319 add changeset f9cafe1212c8
312 add changeset f9cafe1212c8
320 add changeset 911600dab2ae
313 add changeset 911600dab2ae
321 adding manifests
314 adding manifests
322 adding file changes
315 adding file changes
323 adding foo/Bar/file.txt revisions
316 adding foo/Bar/file.txt revisions
324 adding foo/file.txt revisions
317 adding foo/file.txt revisions
325 adding quux/file.py revisions
318 adding quux/file.py revisions
326 added 3 changesets with 3 changes to 3 files
319 added 3 changesets with 3 changes to 3 files
327 calling hook pretxnchangegroup.acl: hgext.acl.hook
320 calling hook pretxnchangegroup.acl: hgext.acl.hook
328 acl: checking access for user "fred"
321 acl: checking access for user "fred"
329 acl: acl.allow.branches not enabled
322 acl: acl.allow.branches not enabled
330 acl: acl.deny.branches not enabled
323 acl: acl.deny.branches not enabled
331 acl: acl.allow enabled, 0 entries for user fred
324 acl: acl.allow enabled, 0 entries for user fred
332 acl: acl.deny not enabled
325 acl: acl.deny not enabled
333 acl: branch access granted: "ef1ea85a6374" on branch "default"
326 acl: branch access granted: "ef1ea85a6374" on branch "default"
334 error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
327 error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
335 bundle2-input-part: total payload size 1606
328 bundle2-input-part: total payload size 1606
336 bundle2-input-bundle: 3 parts total
329 bundle2-input-bundle: 3 parts total
337 transaction abort!
330 transaction abort!
338 rollback completed
331 rollback completed
339 abort: acl: user "fred" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
332 abort: acl: user "fred" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
340 no rollback information available
333 no rollback information available
341 0:6675d58eff77
334 0:6675d58eff77
342
335
343
336
344 fred is allowed inside foo/
337 fred is allowed inside foo/
345
338
346 $ echo 'foo/** = fred' >> $config
339 $ echo 'foo/** = fred' >> $config
347 $ do_push fred
340 $ do_push fred
348 Pushing as user fred
341 Pushing as user fred
349 hgrc = """
342 hgrc = """
350 [hooks]
343 [hooks]
351 pretxnchangegroup.acl = python:hgext.acl.hook
344 pretxnchangegroup.acl = python:hgext.acl.hook
352 [acl]
345 [acl]
353 sources = push
346 sources = push
354 [acl.allow]
347 [acl.allow]
355 foo/** = fred
348 foo/** = fred
356 """
349 """
357 pushing to ../b
350 pushing to ../b
358 query 1; heads
351 query 1; heads
359 searching for changes
352 searching for changes
360 all remote heads known locally
353 all remote heads known locally
361 listing keys for "phases"
354 listing keys for "phases"
362 checking for updated bookmarks
355 checking for updated bookmarks
363 listing keys for "bookmarks"
356 listing keys for "bookmarks"
364 invalid branchheads cache (served): tip differs
357 invalid branchheads cache (served): tip differs
365 listing keys for "bookmarks"
358 listing keys for "bookmarks"
366 3 changesets found
359 3 changesets found
367 list of changesets:
360 list of changesets:
368 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
361 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
369 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
362 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
370 911600dab2ae7a9baff75958b84fe606851ce955
363 911600dab2ae7a9baff75958b84fe606851ce955
371 bundle2-output-bundle: "HG20", 4 parts total
364 bundle2-output-bundle: "HG20", 4 parts total
372 bundle2-output-part: "replycaps" 155 bytes payload
365 bundle2-output-part: "replycaps" 155 bytes payload
373 bundle2-output-part: "check:heads" streamed payload
366 bundle2-output-part: "check:heads" streamed payload
374 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
367 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
375 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
368 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
376 bundle2-input-bundle: with-transaction
369 bundle2-input-bundle: with-transaction
377 bundle2-input-part: "replycaps" supported
370 bundle2-input-part: "replycaps" supported
378 bundle2-input-part: total payload size 155
371 bundle2-input-part: total payload size 155
379 bundle2-input-part: "check:heads" supported
372 bundle2-input-part: "check:heads" supported
380 bundle2-input-part: total payload size 20
373 bundle2-input-part: total payload size 20
381 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
374 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
382 adding changesets
375 adding changesets
383 add changeset ef1ea85a6374
376 add changeset ef1ea85a6374
384 add changeset f9cafe1212c8
377 add changeset f9cafe1212c8
385 add changeset 911600dab2ae
378 add changeset 911600dab2ae
386 adding manifests
379 adding manifests
387 adding file changes
380 adding file changes
388 adding foo/Bar/file.txt revisions
381 adding foo/Bar/file.txt revisions
389 adding foo/file.txt revisions
382 adding foo/file.txt revisions
390 adding quux/file.py revisions
383 adding quux/file.py revisions
391 added 3 changesets with 3 changes to 3 files
384 added 3 changesets with 3 changes to 3 files
392 calling hook pretxnchangegroup.acl: hgext.acl.hook
385 calling hook pretxnchangegroup.acl: hgext.acl.hook
393 acl: checking access for user "fred"
386 acl: checking access for user "fred"
394 acl: acl.allow.branches not enabled
387 acl: acl.allow.branches not enabled
395 acl: acl.deny.branches not enabled
388 acl: acl.deny.branches not enabled
396 acl: acl.allow enabled, 1 entries for user fred
389 acl: acl.allow enabled, 1 entries for user fred
397 acl: acl.deny not enabled
390 acl: acl.deny not enabled
398 acl: branch access granted: "ef1ea85a6374" on branch "default"
391 acl: branch access granted: "ef1ea85a6374" on branch "default"
399 acl: path access granted: "ef1ea85a6374"
392 acl: path access granted: "ef1ea85a6374"
400 acl: branch access granted: "f9cafe1212c8" on branch "default"
393 acl: branch access granted: "f9cafe1212c8" on branch "default"
401 acl: path access granted: "f9cafe1212c8"
394 acl: path access granted: "f9cafe1212c8"
402 acl: branch access granted: "911600dab2ae" on branch "default"
395 acl: branch access granted: "911600dab2ae" on branch "default"
403 error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
396 error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
404 bundle2-input-part: total payload size 1606
397 bundle2-input-part: total payload size 1606
405 bundle2-input-bundle: 3 parts total
398 bundle2-input-bundle: 3 parts total
406 transaction abort!
399 transaction abort!
407 rollback completed
400 rollback completed
408 abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
401 abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
409 no rollback information available
402 no rollback information available
410 0:6675d58eff77
403 0:6675d58eff77
411
404
412
405
413 Empty [acl.deny]
406 Empty [acl.deny]
414
407
415 $ echo '[acl.deny]' >> $config
408 $ echo '[acl.deny]' >> $config
416 $ do_push barney
409 $ do_push barney
417 Pushing as user barney
410 Pushing as user barney
418 hgrc = """
411 hgrc = """
419 [hooks]
412 [hooks]
420 pretxnchangegroup.acl = python:hgext.acl.hook
413 pretxnchangegroup.acl = python:hgext.acl.hook
421 [acl]
414 [acl]
422 sources = push
415 sources = push
423 [acl.allow]
416 [acl.allow]
424 foo/** = fred
417 foo/** = fred
425 [acl.deny]
418 [acl.deny]
426 """
419 """
427 pushing to ../b
420 pushing to ../b
428 query 1; heads
421 query 1; heads
429 searching for changes
422 searching for changes
430 all remote heads known locally
423 all remote heads known locally
431 listing keys for "phases"
424 listing keys for "phases"
432 checking for updated bookmarks
425 checking for updated bookmarks
433 listing keys for "bookmarks"
426 listing keys for "bookmarks"
434 invalid branchheads cache (served): tip differs
427 invalid branchheads cache (served): tip differs
435 listing keys for "bookmarks"
428 listing keys for "bookmarks"
436 3 changesets found
429 3 changesets found
437 list of changesets:
430 list of changesets:
438 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
431 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
439 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
432 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
440 911600dab2ae7a9baff75958b84fe606851ce955
433 911600dab2ae7a9baff75958b84fe606851ce955
441 bundle2-output-bundle: "HG20", 4 parts total
434 bundle2-output-bundle: "HG20", 4 parts total
442 bundle2-output-part: "replycaps" 155 bytes payload
435 bundle2-output-part: "replycaps" 155 bytes payload
443 bundle2-output-part: "check:heads" streamed payload
436 bundle2-output-part: "check:heads" streamed payload
444 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
437 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
445 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
438 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
446 bundle2-input-bundle: with-transaction
439 bundle2-input-bundle: with-transaction
447 bundle2-input-part: "replycaps" supported
440 bundle2-input-part: "replycaps" supported
448 bundle2-input-part: total payload size 155
441 bundle2-input-part: total payload size 155
449 bundle2-input-part: "check:heads" supported
442 bundle2-input-part: "check:heads" supported
450 bundle2-input-part: total payload size 20
443 bundle2-input-part: total payload size 20
451 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
444 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
452 adding changesets
445 adding changesets
453 add changeset ef1ea85a6374
446 add changeset ef1ea85a6374
454 add changeset f9cafe1212c8
447 add changeset f9cafe1212c8
455 add changeset 911600dab2ae
448 add changeset 911600dab2ae
456 adding manifests
449 adding manifests
457 adding file changes
450 adding file changes
458 adding foo/Bar/file.txt revisions
451 adding foo/Bar/file.txt revisions
459 adding foo/file.txt revisions
452 adding foo/file.txt revisions
460 adding quux/file.py revisions
453 adding quux/file.py revisions
461 added 3 changesets with 3 changes to 3 files
454 added 3 changesets with 3 changes to 3 files
462 calling hook pretxnchangegroup.acl: hgext.acl.hook
455 calling hook pretxnchangegroup.acl: hgext.acl.hook
463 acl: checking access for user "barney"
456 acl: checking access for user "barney"
464 acl: acl.allow.branches not enabled
457 acl: acl.allow.branches not enabled
465 acl: acl.deny.branches not enabled
458 acl: acl.deny.branches not enabled
466 acl: acl.allow enabled, 0 entries for user barney
459 acl: acl.allow enabled, 0 entries for user barney
467 acl: acl.deny enabled, 0 entries for user barney
460 acl: acl.deny enabled, 0 entries for user barney
468 acl: branch access granted: "ef1ea85a6374" on branch "default"
461 acl: branch access granted: "ef1ea85a6374" on branch "default"
469 error: pretxnchangegroup.acl hook failed: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
462 error: pretxnchangegroup.acl hook failed: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
470 bundle2-input-part: total payload size 1606
463 bundle2-input-part: total payload size 1606
471 bundle2-input-bundle: 3 parts total
464 bundle2-input-bundle: 3 parts total
472 transaction abort!
465 transaction abort!
473 rollback completed
466 rollback completed
474 abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
467 abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
475 no rollback information available
468 no rollback information available
476 0:6675d58eff77
469 0:6675d58eff77
477
470
478
471
479 fred is allowed inside foo/, but not foo/bar/ (case matters)
472 fred is allowed inside foo/, but not foo/bar/ (case matters)
480
473
481 $ echo 'foo/bar/** = fred' >> $config
474 $ echo 'foo/bar/** = fred' >> $config
482 $ do_push fred
475 $ do_push fred
483 Pushing as user fred
476 Pushing as user fred
484 hgrc = """
477 hgrc = """
485 [hooks]
478 [hooks]
486 pretxnchangegroup.acl = python:hgext.acl.hook
479 pretxnchangegroup.acl = python:hgext.acl.hook
487 [acl]
480 [acl]
488 sources = push
481 sources = push
489 [acl.allow]
482 [acl.allow]
490 foo/** = fred
483 foo/** = fred
491 [acl.deny]
484 [acl.deny]
492 foo/bar/** = fred
485 foo/bar/** = fred
493 """
486 """
494 pushing to ../b
487 pushing to ../b
495 query 1; heads
488 query 1; heads
496 searching for changes
489 searching for changes
497 all remote heads known locally
490 all remote heads known locally
498 listing keys for "phases"
491 listing keys for "phases"
499 checking for updated bookmarks
492 checking for updated bookmarks
500 listing keys for "bookmarks"
493 listing keys for "bookmarks"
501 invalid branchheads cache (served): tip differs
494 invalid branchheads cache (served): tip differs
502 listing keys for "bookmarks"
495 listing keys for "bookmarks"
503 3 changesets found
496 3 changesets found
504 list of changesets:
497 list of changesets:
505 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
498 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
506 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
499 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
507 911600dab2ae7a9baff75958b84fe606851ce955
500 911600dab2ae7a9baff75958b84fe606851ce955
508 bundle2-output-bundle: "HG20", 4 parts total
501 bundle2-output-bundle: "HG20", 4 parts total
509 bundle2-output-part: "replycaps" 155 bytes payload
502 bundle2-output-part: "replycaps" 155 bytes payload
510 bundle2-output-part: "check:heads" streamed payload
503 bundle2-output-part: "check:heads" streamed payload
511 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
504 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
512 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
505 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
513 bundle2-input-bundle: with-transaction
506 bundle2-input-bundle: with-transaction
514 bundle2-input-part: "replycaps" supported
507 bundle2-input-part: "replycaps" supported
515 bundle2-input-part: total payload size 155
508 bundle2-input-part: total payload size 155
516 bundle2-input-part: "check:heads" supported
509 bundle2-input-part: "check:heads" supported
517 bundle2-input-part: total payload size 20
510 bundle2-input-part: total payload size 20
518 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
511 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
519 adding changesets
512 adding changesets
520 add changeset ef1ea85a6374
513 add changeset ef1ea85a6374
521 add changeset f9cafe1212c8
514 add changeset f9cafe1212c8
522 add changeset 911600dab2ae
515 add changeset 911600dab2ae
523 adding manifests
516 adding manifests
524 adding file changes
517 adding file changes
525 adding foo/Bar/file.txt revisions
518 adding foo/Bar/file.txt revisions
526 adding foo/file.txt revisions
519 adding foo/file.txt revisions
527 adding quux/file.py revisions
520 adding quux/file.py revisions
528 added 3 changesets with 3 changes to 3 files
521 added 3 changesets with 3 changes to 3 files
529 calling hook pretxnchangegroup.acl: hgext.acl.hook
522 calling hook pretxnchangegroup.acl: hgext.acl.hook
530 acl: checking access for user "fred"
523 acl: checking access for user "fred"
531 acl: acl.allow.branches not enabled
524 acl: acl.allow.branches not enabled
532 acl: acl.deny.branches not enabled
525 acl: acl.deny.branches not enabled
533 acl: acl.allow enabled, 1 entries for user fred
526 acl: acl.allow enabled, 1 entries for user fred
534 acl: acl.deny enabled, 1 entries for user fred
527 acl: acl.deny enabled, 1 entries for user fred
535 acl: branch access granted: "ef1ea85a6374" on branch "default"
528 acl: branch access granted: "ef1ea85a6374" on branch "default"
536 acl: path access granted: "ef1ea85a6374"
529 acl: path access granted: "ef1ea85a6374"
537 acl: branch access granted: "f9cafe1212c8" on branch "default"
530 acl: branch access granted: "f9cafe1212c8" on branch "default"
538 acl: path access granted: "f9cafe1212c8"
531 acl: path access granted: "f9cafe1212c8"
539 acl: branch access granted: "911600dab2ae" on branch "default"
532 acl: branch access granted: "911600dab2ae" on branch "default"
540 error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
533 error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
541 bundle2-input-part: total payload size 1606
534 bundle2-input-part: total payload size 1606
542 bundle2-input-bundle: 3 parts total
535 bundle2-input-bundle: 3 parts total
543 transaction abort!
536 transaction abort!
544 rollback completed
537 rollback completed
545 abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
538 abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
546 no rollback information available
539 no rollback information available
547 0:6675d58eff77
540 0:6675d58eff77
548
541
549
542
550 fred is allowed inside foo/, but not foo/Bar/
543 fred is allowed inside foo/, but not foo/Bar/
551
544
552 $ echo 'foo/Bar/** = fred' >> $config
545 $ echo 'foo/Bar/** = fred' >> $config
553 $ do_push fred
546 $ do_push fred
554 Pushing as user fred
547 Pushing as user fred
555 hgrc = """
548 hgrc = """
556 [hooks]
549 [hooks]
557 pretxnchangegroup.acl = python:hgext.acl.hook
550 pretxnchangegroup.acl = python:hgext.acl.hook
558 [acl]
551 [acl]
559 sources = push
552 sources = push
560 [acl.allow]
553 [acl.allow]
561 foo/** = fred
554 foo/** = fred
562 [acl.deny]
555 [acl.deny]
563 foo/bar/** = fred
556 foo/bar/** = fred
564 foo/Bar/** = fred
557 foo/Bar/** = fred
565 """
558 """
566 pushing to ../b
559 pushing to ../b
567 query 1; heads
560 query 1; heads
568 searching for changes
561 searching for changes
569 all remote heads known locally
562 all remote heads known locally
570 listing keys for "phases"
563 listing keys for "phases"
571 checking for updated bookmarks
564 checking for updated bookmarks
572 listing keys for "bookmarks"
565 listing keys for "bookmarks"
573 invalid branchheads cache (served): tip differs
566 invalid branchheads cache (served): tip differs
574 listing keys for "bookmarks"
567 listing keys for "bookmarks"
575 3 changesets found
568 3 changesets found
576 list of changesets:
569 list of changesets:
577 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
570 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
578 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
571 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
579 911600dab2ae7a9baff75958b84fe606851ce955
572 911600dab2ae7a9baff75958b84fe606851ce955
580 bundle2-output-bundle: "HG20", 4 parts total
573 bundle2-output-bundle: "HG20", 4 parts total
581 bundle2-output-part: "replycaps" 155 bytes payload
574 bundle2-output-part: "replycaps" 155 bytes payload
582 bundle2-output-part: "check:heads" streamed payload
575 bundle2-output-part: "check:heads" streamed payload
583 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
576 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
584 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
577 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
585 bundle2-input-bundle: with-transaction
578 bundle2-input-bundle: with-transaction
586 bundle2-input-part: "replycaps" supported
579 bundle2-input-part: "replycaps" supported
587 bundle2-input-part: total payload size 155
580 bundle2-input-part: total payload size 155
588 bundle2-input-part: "check:heads" supported
581 bundle2-input-part: "check:heads" supported
589 bundle2-input-part: total payload size 20
582 bundle2-input-part: total payload size 20
590 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
583 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
591 adding changesets
584 adding changesets
592 add changeset ef1ea85a6374
585 add changeset ef1ea85a6374
593 add changeset f9cafe1212c8
586 add changeset f9cafe1212c8
594 add changeset 911600dab2ae
587 add changeset 911600dab2ae
595 adding manifests
588 adding manifests
596 adding file changes
589 adding file changes
597 adding foo/Bar/file.txt revisions
590 adding foo/Bar/file.txt revisions
598 adding foo/file.txt revisions
591 adding foo/file.txt revisions
599 adding quux/file.py revisions
592 adding quux/file.py revisions
600 added 3 changesets with 3 changes to 3 files
593 added 3 changesets with 3 changes to 3 files
601 calling hook pretxnchangegroup.acl: hgext.acl.hook
594 calling hook pretxnchangegroup.acl: hgext.acl.hook
602 acl: checking access for user "fred"
595 acl: checking access for user "fred"
603 acl: acl.allow.branches not enabled
596 acl: acl.allow.branches not enabled
604 acl: acl.deny.branches not enabled
597 acl: acl.deny.branches not enabled
605 acl: acl.allow enabled, 1 entries for user fred
598 acl: acl.allow enabled, 1 entries for user fred
606 acl: acl.deny enabled, 2 entries for user fred
599 acl: acl.deny enabled, 2 entries for user fred
607 acl: branch access granted: "ef1ea85a6374" on branch "default"
600 acl: branch access granted: "ef1ea85a6374" on branch "default"
608 acl: path access granted: "ef1ea85a6374"
601 acl: path access granted: "ef1ea85a6374"
609 acl: branch access granted: "f9cafe1212c8" on branch "default"
602 acl: branch access granted: "f9cafe1212c8" on branch "default"
610 error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
603 error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
611 bundle2-input-part: total payload size 1606
604 bundle2-input-part: total payload size 1606
612 bundle2-input-bundle: 3 parts total
605 bundle2-input-bundle: 3 parts total
613 transaction abort!
606 transaction abort!
614 rollback completed
607 rollback completed
615 abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
608 abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
616 no rollback information available
609 no rollback information available
617 0:6675d58eff77
610 0:6675d58eff77
618
611
619
612
620 $ echo 'barney is not mentioned => not allowed anywhere'
613 $ echo 'barney is not mentioned => not allowed anywhere'
621 barney is not mentioned => not allowed anywhere
614 barney is not mentioned => not allowed anywhere
622 $ do_push barney
615 $ do_push barney
623 Pushing as user barney
616 Pushing as user barney
624 hgrc = """
617 hgrc = """
625 [hooks]
618 [hooks]
626 pretxnchangegroup.acl = python:hgext.acl.hook
619 pretxnchangegroup.acl = python:hgext.acl.hook
627 [acl]
620 [acl]
628 sources = push
621 sources = push
629 [acl.allow]
622 [acl.allow]
630 foo/** = fred
623 foo/** = fred
631 [acl.deny]
624 [acl.deny]
632 foo/bar/** = fred
625 foo/bar/** = fred
633 foo/Bar/** = fred
626 foo/Bar/** = fred
634 """
627 """
635 pushing to ../b
628 pushing to ../b
636 query 1; heads
629 query 1; heads
637 searching for changes
630 searching for changes
638 all remote heads known locally
631 all remote heads known locally
639 listing keys for "phases"
632 listing keys for "phases"
640 checking for updated bookmarks
633 checking for updated bookmarks
641 listing keys for "bookmarks"
634 listing keys for "bookmarks"
642 invalid branchheads cache (served): tip differs
635 invalid branchheads cache (served): tip differs
643 listing keys for "bookmarks"
636 listing keys for "bookmarks"
644 3 changesets found
637 3 changesets found
645 list of changesets:
638 list of changesets:
646 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
639 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
647 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
640 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
648 911600dab2ae7a9baff75958b84fe606851ce955
641 911600dab2ae7a9baff75958b84fe606851ce955
649 bundle2-output-bundle: "HG20", 4 parts total
642 bundle2-output-bundle: "HG20", 4 parts total
650 bundle2-output-part: "replycaps" 155 bytes payload
643 bundle2-output-part: "replycaps" 155 bytes payload
651 bundle2-output-part: "check:heads" streamed payload
644 bundle2-output-part: "check:heads" streamed payload
652 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
645 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
653 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
646 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
654 bundle2-input-bundle: with-transaction
647 bundle2-input-bundle: with-transaction
655 bundle2-input-part: "replycaps" supported
648 bundle2-input-part: "replycaps" supported
656 bundle2-input-part: total payload size 155
649 bundle2-input-part: total payload size 155
657 bundle2-input-part: "check:heads" supported
650 bundle2-input-part: "check:heads" supported
658 bundle2-input-part: total payload size 20
651 bundle2-input-part: total payload size 20
659 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
652 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
660 adding changesets
653 adding changesets
661 add changeset ef1ea85a6374
654 add changeset ef1ea85a6374
662 add changeset f9cafe1212c8
655 add changeset f9cafe1212c8
663 add changeset 911600dab2ae
656 add changeset 911600dab2ae
664 adding manifests
657 adding manifests
665 adding file changes
658 adding file changes
666 adding foo/Bar/file.txt revisions
659 adding foo/Bar/file.txt revisions
667 adding foo/file.txt revisions
660 adding foo/file.txt revisions
668 adding quux/file.py revisions
661 adding quux/file.py revisions
669 added 3 changesets with 3 changes to 3 files
662 added 3 changesets with 3 changes to 3 files
670 calling hook pretxnchangegroup.acl: hgext.acl.hook
663 calling hook pretxnchangegroup.acl: hgext.acl.hook
671 acl: checking access for user "barney"
664 acl: checking access for user "barney"
672 acl: acl.allow.branches not enabled
665 acl: acl.allow.branches not enabled
673 acl: acl.deny.branches not enabled
666 acl: acl.deny.branches not enabled
674 acl: acl.allow enabled, 0 entries for user barney
667 acl: acl.allow enabled, 0 entries for user barney
675 acl: acl.deny enabled, 0 entries for user barney
668 acl: acl.deny enabled, 0 entries for user barney
676 acl: branch access granted: "ef1ea85a6374" on branch "default"
669 acl: branch access granted: "ef1ea85a6374" on branch "default"
677 error: pretxnchangegroup.acl hook failed: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
670 error: pretxnchangegroup.acl hook failed: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
678 bundle2-input-part: total payload size 1606
671 bundle2-input-part: total payload size 1606
679 bundle2-input-bundle: 3 parts total
672 bundle2-input-bundle: 3 parts total
680 transaction abort!
673 transaction abort!
681 rollback completed
674 rollback completed
682 abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
675 abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
683 no rollback information available
676 no rollback information available
684 0:6675d58eff77
677 0:6675d58eff77
685
678
686
679
687 barney is allowed everywhere
680 barney is allowed everywhere
688
681
689 $ echo '[acl.allow]' >> $config
682 $ echo '[acl.allow]' >> $config
690 $ echo '** = barney' >> $config
683 $ echo '** = barney' >> $config
691 $ do_push barney
684 $ do_push barney
692 Pushing as user barney
685 Pushing as user barney
693 hgrc = """
686 hgrc = """
694 [hooks]
687 [hooks]
695 pretxnchangegroup.acl = python:hgext.acl.hook
688 pretxnchangegroup.acl = python:hgext.acl.hook
696 [acl]
689 [acl]
697 sources = push
690 sources = push
698 [acl.allow]
691 [acl.allow]
699 foo/** = fred
692 foo/** = fred
700 [acl.deny]
693 [acl.deny]
701 foo/bar/** = fred
694 foo/bar/** = fred
702 foo/Bar/** = fred
695 foo/Bar/** = fred
703 [acl.allow]
696 [acl.allow]
704 ** = barney
697 ** = barney
705 """
698 """
706 pushing to ../b
699 pushing to ../b
707 query 1; heads
700 query 1; heads
708 searching for changes
701 searching for changes
709 all remote heads known locally
702 all remote heads known locally
710 listing keys for "phases"
703 listing keys for "phases"
711 checking for updated bookmarks
704 checking for updated bookmarks
712 listing keys for "bookmarks"
705 listing keys for "bookmarks"
713 invalid branchheads cache (served): tip differs
706 invalid branchheads cache (served): tip differs
714 listing keys for "bookmarks"
707 listing keys for "bookmarks"
715 3 changesets found
708 3 changesets found
716 list of changesets:
709 list of changesets:
717 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
710 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
718 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
711 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
719 911600dab2ae7a9baff75958b84fe606851ce955
712 911600dab2ae7a9baff75958b84fe606851ce955
720 bundle2-output-bundle: "HG20", 4 parts total
713 bundle2-output-bundle: "HG20", 4 parts total
721 bundle2-output-part: "replycaps" 155 bytes payload
714 bundle2-output-part: "replycaps" 155 bytes payload
722 bundle2-output-part: "check:heads" streamed payload
715 bundle2-output-part: "check:heads" streamed payload
723 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
716 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
724 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
717 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
725 bundle2-input-bundle: with-transaction
718 bundle2-input-bundle: with-transaction
726 bundle2-input-part: "replycaps" supported
719 bundle2-input-part: "replycaps" supported
727 bundle2-input-part: total payload size 155
720 bundle2-input-part: total payload size 155
728 bundle2-input-part: "check:heads" supported
721 bundle2-input-part: "check:heads" supported
729 bundle2-input-part: total payload size 20
722 bundle2-input-part: total payload size 20
730 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
723 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
731 adding changesets
724 adding changesets
732 add changeset ef1ea85a6374
725 add changeset ef1ea85a6374
733 add changeset f9cafe1212c8
726 add changeset f9cafe1212c8
734 add changeset 911600dab2ae
727 add changeset 911600dab2ae
735 adding manifests
728 adding manifests
736 adding file changes
729 adding file changes
737 adding foo/Bar/file.txt revisions
730 adding foo/Bar/file.txt revisions
738 adding foo/file.txt revisions
731 adding foo/file.txt revisions
739 adding quux/file.py revisions
732 adding quux/file.py revisions
740 added 3 changesets with 3 changes to 3 files
733 added 3 changesets with 3 changes to 3 files
741 calling hook pretxnchangegroup.acl: hgext.acl.hook
734 calling hook pretxnchangegroup.acl: hgext.acl.hook
742 acl: checking access for user "barney"
735 acl: checking access for user "barney"
743 acl: acl.allow.branches not enabled
736 acl: acl.allow.branches not enabled
744 acl: acl.deny.branches not enabled
737 acl: acl.deny.branches not enabled
745 acl: acl.allow enabled, 1 entries for user barney
738 acl: acl.allow enabled, 1 entries for user barney
746 acl: acl.deny enabled, 0 entries for user barney
739 acl: acl.deny enabled, 0 entries for user barney
747 acl: branch access granted: "ef1ea85a6374" on branch "default"
740 acl: branch access granted: "ef1ea85a6374" on branch "default"
748 acl: path access granted: "ef1ea85a6374"
741 acl: path access granted: "ef1ea85a6374"
749 acl: branch access granted: "f9cafe1212c8" on branch "default"
742 acl: branch access granted: "f9cafe1212c8" on branch "default"
750 acl: path access granted: "f9cafe1212c8"
743 acl: path access granted: "f9cafe1212c8"
751 acl: branch access granted: "911600dab2ae" on branch "default"
744 acl: branch access granted: "911600dab2ae" on branch "default"
752 acl: path access granted: "911600dab2ae"
745 acl: path access granted: "911600dab2ae"
753 bundle2-input-part: total payload size 1606
746 bundle2-input-part: total payload size 1606
754 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
747 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
755 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
748 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
756 bundle2-input-bundle: 3 parts total
749 bundle2-input-bundle: 3 parts total
757 updating the branch cache
750 updating the branch cache
758 bundle2-output-bundle: "HG20", 2 parts total
751 bundle2-output-bundle: "HG20", 2 parts total
759 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
752 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
760 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
753 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
761 bundle2-input-bundle: with-transaction
754 bundle2-input-bundle: with-transaction
762 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
755 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
763 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
756 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
764 bundle2-input-bundle: 1 parts total
757 bundle2-input-bundle: 1 parts total
765 listing keys for "phases"
758 listing keys for "phases"
766 repository tip rolled back to revision 0 (undo push)
759 repository tip rolled back to revision 0 (undo push)
767 0:6675d58eff77
760 0:6675d58eff77
768
761
769
762
770 wilma can change files with a .txt extension
763 wilma can change files with a .txt extension
771
764
772 $ echo '**/*.txt = wilma' >> $config
765 $ echo '**/*.txt = wilma' >> $config
773 $ do_push wilma
766 $ do_push wilma
774 Pushing as user wilma
767 Pushing as user wilma
775 hgrc = """
768 hgrc = """
776 [hooks]
769 [hooks]
777 pretxnchangegroup.acl = python:hgext.acl.hook
770 pretxnchangegroup.acl = python:hgext.acl.hook
778 [acl]
771 [acl]
779 sources = push
772 sources = push
780 [acl.allow]
773 [acl.allow]
781 foo/** = fred
774 foo/** = fred
782 [acl.deny]
775 [acl.deny]
783 foo/bar/** = fred
776 foo/bar/** = fred
784 foo/Bar/** = fred
777 foo/Bar/** = fred
785 [acl.allow]
778 [acl.allow]
786 ** = barney
779 ** = barney
787 **/*.txt = wilma
780 **/*.txt = wilma
788 """
781 """
789 pushing to ../b
782 pushing to ../b
790 query 1; heads
783 query 1; heads
791 searching for changes
784 searching for changes
792 all remote heads known locally
785 all remote heads known locally
793 listing keys for "phases"
786 listing keys for "phases"
794 checking for updated bookmarks
787 checking for updated bookmarks
795 listing keys for "bookmarks"
788 listing keys for "bookmarks"
796 invalid branchheads cache (served): tip differs
789 invalid branchheads cache (served): tip differs
797 listing keys for "bookmarks"
790 listing keys for "bookmarks"
798 3 changesets found
791 3 changesets found
799 list of changesets:
792 list of changesets:
800 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
793 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
801 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
794 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
802 911600dab2ae7a9baff75958b84fe606851ce955
795 911600dab2ae7a9baff75958b84fe606851ce955
803 bundle2-output-bundle: "HG20", 4 parts total
796 bundle2-output-bundle: "HG20", 4 parts total
804 bundle2-output-part: "replycaps" 155 bytes payload
797 bundle2-output-part: "replycaps" 155 bytes payload
805 bundle2-output-part: "check:heads" streamed payload
798 bundle2-output-part: "check:heads" streamed payload
806 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
799 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
807 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
800 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
808 bundle2-input-bundle: with-transaction
801 bundle2-input-bundle: with-transaction
809 bundle2-input-part: "replycaps" supported
802 bundle2-input-part: "replycaps" supported
810 bundle2-input-part: total payload size 155
803 bundle2-input-part: total payload size 155
811 bundle2-input-part: "check:heads" supported
804 bundle2-input-part: "check:heads" supported
812 bundle2-input-part: total payload size 20
805 bundle2-input-part: total payload size 20
813 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
806 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
814 adding changesets
807 adding changesets
815 add changeset ef1ea85a6374
808 add changeset ef1ea85a6374
816 add changeset f9cafe1212c8
809 add changeset f9cafe1212c8
817 add changeset 911600dab2ae
810 add changeset 911600dab2ae
818 adding manifests
811 adding manifests
819 adding file changes
812 adding file changes
820 adding foo/Bar/file.txt revisions
813 adding foo/Bar/file.txt revisions
821 adding foo/file.txt revisions
814 adding foo/file.txt revisions
822 adding quux/file.py revisions
815 adding quux/file.py revisions
823 added 3 changesets with 3 changes to 3 files
816 added 3 changesets with 3 changes to 3 files
824 calling hook pretxnchangegroup.acl: hgext.acl.hook
817 calling hook pretxnchangegroup.acl: hgext.acl.hook
825 acl: checking access for user "wilma"
818 acl: checking access for user "wilma"
826 acl: acl.allow.branches not enabled
819 acl: acl.allow.branches not enabled
827 acl: acl.deny.branches not enabled
820 acl: acl.deny.branches not enabled
828 acl: acl.allow enabled, 1 entries for user wilma
821 acl: acl.allow enabled, 1 entries for user wilma
829 acl: acl.deny enabled, 0 entries for user wilma
822 acl: acl.deny enabled, 0 entries for user wilma
830 acl: branch access granted: "ef1ea85a6374" on branch "default"
823 acl: branch access granted: "ef1ea85a6374" on branch "default"
831 acl: path access granted: "ef1ea85a6374"
824 acl: path access granted: "ef1ea85a6374"
832 acl: branch access granted: "f9cafe1212c8" on branch "default"
825 acl: branch access granted: "f9cafe1212c8" on branch "default"
833 acl: path access granted: "f9cafe1212c8"
826 acl: path access granted: "f9cafe1212c8"
834 acl: branch access granted: "911600dab2ae" on branch "default"
827 acl: branch access granted: "911600dab2ae" on branch "default"
835 error: pretxnchangegroup.acl hook failed: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae")
828 error: pretxnchangegroup.acl hook failed: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae")
836 bundle2-input-part: total payload size 1606
829 bundle2-input-part: total payload size 1606
837 bundle2-input-bundle: 3 parts total
830 bundle2-input-bundle: 3 parts total
838 transaction abort!
831 transaction abort!
839 rollback completed
832 rollback completed
840 abort: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae")
833 abort: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae")
841 no rollback information available
834 no rollback information available
842 0:6675d58eff77
835 0:6675d58eff77
843
836
844
837
845 file specified by acl.config does not exist
838 file specified by acl.config does not exist
846
839
847 $ echo '[acl]' >> $config
840 $ echo '[acl]' >> $config
848 $ echo 'config = ../acl.config' >> $config
841 $ echo 'config = ../acl.config' >> $config
849 $ do_push barney
842 $ do_push barney
850 Pushing as user barney
843 Pushing as user barney
851 hgrc = """
844 hgrc = """
852 [hooks]
845 [hooks]
853 pretxnchangegroup.acl = python:hgext.acl.hook
846 pretxnchangegroup.acl = python:hgext.acl.hook
854 [acl]
847 [acl]
855 sources = push
848 sources = push
856 [acl.allow]
849 [acl.allow]
857 foo/** = fred
850 foo/** = fred
858 [acl.deny]
851 [acl.deny]
859 foo/bar/** = fred
852 foo/bar/** = fred
860 foo/Bar/** = fred
853 foo/Bar/** = fred
861 [acl.allow]
854 [acl.allow]
862 ** = barney
855 ** = barney
863 **/*.txt = wilma
856 **/*.txt = wilma
864 [acl]
857 [acl]
865 config = ../acl.config
858 config = ../acl.config
866 """
859 """
867 pushing to ../b
860 pushing to ../b
868 query 1; heads
861 query 1; heads
869 searching for changes
862 searching for changes
870 all remote heads known locally
863 all remote heads known locally
871 listing keys for "phases"
864 listing keys for "phases"
872 checking for updated bookmarks
865 checking for updated bookmarks
873 listing keys for "bookmarks"
866 listing keys for "bookmarks"
874 invalid branchheads cache (served): tip differs
867 invalid branchheads cache (served): tip differs
875 listing keys for "bookmarks"
868 listing keys for "bookmarks"
876 3 changesets found
869 3 changesets found
877 list of changesets:
870 list of changesets:
878 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
871 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
879 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
872 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
880 911600dab2ae7a9baff75958b84fe606851ce955
873 911600dab2ae7a9baff75958b84fe606851ce955
881 bundle2-output-bundle: "HG20", 4 parts total
874 bundle2-output-bundle: "HG20", 4 parts total
882 bundle2-output-part: "replycaps" 155 bytes payload
875 bundle2-output-part: "replycaps" 155 bytes payload
883 bundle2-output-part: "check:heads" streamed payload
876 bundle2-output-part: "check:heads" streamed payload
884 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
877 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
885 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
878 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
886 bundle2-input-bundle: with-transaction
879 bundle2-input-bundle: with-transaction
887 bundle2-input-part: "replycaps" supported
880 bundle2-input-part: "replycaps" supported
888 bundle2-input-part: total payload size 155
881 bundle2-input-part: total payload size 155
889 bundle2-input-part: "check:heads" supported
882 bundle2-input-part: "check:heads" supported
890 bundle2-input-part: total payload size 20
883 bundle2-input-part: total payload size 20
891 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
884 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
892 adding changesets
885 adding changesets
893 add changeset ef1ea85a6374
886 add changeset ef1ea85a6374
894 add changeset f9cafe1212c8
887 add changeset f9cafe1212c8
895 add changeset 911600dab2ae
888 add changeset 911600dab2ae
896 adding manifests
889 adding manifests
897 adding file changes
890 adding file changes
898 adding foo/Bar/file.txt revisions
891 adding foo/Bar/file.txt revisions
899 adding foo/file.txt revisions
892 adding foo/file.txt revisions
900 adding quux/file.py revisions
893 adding quux/file.py revisions
901 added 3 changesets with 3 changes to 3 files
894 added 3 changesets with 3 changes to 3 files
902 calling hook pretxnchangegroup.acl: hgext.acl.hook
895 calling hook pretxnchangegroup.acl: hgext.acl.hook
903 acl: checking access for user "barney"
896 acl: checking access for user "barney"
904 error: pretxnchangegroup.acl hook raised an exception: [Errno 2] No such file or directory: '../acl.config'
897 error: pretxnchangegroup.acl hook raised an exception: [Errno 2] No such file or directory: '../acl.config'
905 bundle2-input-part: total payload size 1606
898 bundle2-input-part: total payload size 1606
906 bundle2-input-bundle: 3 parts total
899 bundle2-input-bundle: 3 parts total
907 transaction abort!
900 transaction abort!
908 rollback completed
901 rollback completed
909 abort: No such file or directory: ../acl.config
902 abort: No such file or directory: ../acl.config
910 no rollback information available
903 no rollback information available
911 0:6675d58eff77
904 0:6675d58eff77
912
905
913
906
914 betty is allowed inside foo/ by a acl.config file
907 betty is allowed inside foo/ by a acl.config file
915
908
916 $ echo '[acl.allow]' >> acl.config
909 $ echo '[acl.allow]' >> acl.config
917 $ echo 'foo/** = betty' >> acl.config
910 $ echo 'foo/** = betty' >> acl.config
918 $ do_push betty
911 $ do_push betty
919 Pushing as user betty
912 Pushing as user betty
920 hgrc = """
913 hgrc = """
921 [hooks]
914 [hooks]
922 pretxnchangegroup.acl = python:hgext.acl.hook
915 pretxnchangegroup.acl = python:hgext.acl.hook
923 [acl]
916 [acl]
924 sources = push
917 sources = push
925 [acl.allow]
918 [acl.allow]
926 foo/** = fred
919 foo/** = fred
927 [acl.deny]
920 [acl.deny]
928 foo/bar/** = fred
921 foo/bar/** = fred
929 foo/Bar/** = fred
922 foo/Bar/** = fred
930 [acl.allow]
923 [acl.allow]
931 ** = barney
924 ** = barney
932 **/*.txt = wilma
925 **/*.txt = wilma
933 [acl]
926 [acl]
934 config = ../acl.config
927 config = ../acl.config
935 """
928 """
936 acl.config = """
929 acl.config = """
937 [acl.allow]
930 [acl.allow]
938 foo/** = betty
931 foo/** = betty
939 """
932 """
940 pushing to ../b
933 pushing to ../b
941 query 1; heads
934 query 1; heads
942 searching for changes
935 searching for changes
943 all remote heads known locally
936 all remote heads known locally
944 listing keys for "phases"
937 listing keys for "phases"
945 checking for updated bookmarks
938 checking for updated bookmarks
946 listing keys for "bookmarks"
939 listing keys for "bookmarks"
947 invalid branchheads cache (served): tip differs
940 invalid branchheads cache (served): tip differs
948 listing keys for "bookmarks"
941 listing keys for "bookmarks"
949 3 changesets found
942 3 changesets found
950 list of changesets:
943 list of changesets:
951 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
944 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
952 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
945 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
953 911600dab2ae7a9baff75958b84fe606851ce955
946 911600dab2ae7a9baff75958b84fe606851ce955
954 bundle2-output-bundle: "HG20", 4 parts total
947 bundle2-output-bundle: "HG20", 4 parts total
955 bundle2-output-part: "replycaps" 155 bytes payload
948 bundle2-output-part: "replycaps" 155 bytes payload
956 bundle2-output-part: "check:heads" streamed payload
949 bundle2-output-part: "check:heads" streamed payload
957 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
950 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
958 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
951 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
959 bundle2-input-bundle: with-transaction
952 bundle2-input-bundle: with-transaction
960 bundle2-input-part: "replycaps" supported
953 bundle2-input-part: "replycaps" supported
961 bundle2-input-part: total payload size 155
954 bundle2-input-part: total payload size 155
962 bundle2-input-part: "check:heads" supported
955 bundle2-input-part: "check:heads" supported
963 bundle2-input-part: total payload size 20
956 bundle2-input-part: total payload size 20
964 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
957 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
965 adding changesets
958 adding changesets
966 add changeset ef1ea85a6374
959 add changeset ef1ea85a6374
967 add changeset f9cafe1212c8
960 add changeset f9cafe1212c8
968 add changeset 911600dab2ae
961 add changeset 911600dab2ae
969 adding manifests
962 adding manifests
970 adding file changes
963 adding file changes
971 adding foo/Bar/file.txt revisions
964 adding foo/Bar/file.txt revisions
972 adding foo/file.txt revisions
965 adding foo/file.txt revisions
973 adding quux/file.py revisions
966 adding quux/file.py revisions
974 added 3 changesets with 3 changes to 3 files
967 added 3 changesets with 3 changes to 3 files
975 calling hook pretxnchangegroup.acl: hgext.acl.hook
968 calling hook pretxnchangegroup.acl: hgext.acl.hook
976 acl: checking access for user "betty"
969 acl: checking access for user "betty"
977 acl: acl.allow.branches not enabled
970 acl: acl.allow.branches not enabled
978 acl: acl.deny.branches not enabled
971 acl: acl.deny.branches not enabled
979 acl: acl.allow enabled, 1 entries for user betty
972 acl: acl.allow enabled, 1 entries for user betty
980 acl: acl.deny enabled, 0 entries for user betty
973 acl: acl.deny enabled, 0 entries for user betty
981 acl: branch access granted: "ef1ea85a6374" on branch "default"
974 acl: branch access granted: "ef1ea85a6374" on branch "default"
982 acl: path access granted: "ef1ea85a6374"
975 acl: path access granted: "ef1ea85a6374"
983 acl: branch access granted: "f9cafe1212c8" on branch "default"
976 acl: branch access granted: "f9cafe1212c8" on branch "default"
984 acl: path access granted: "f9cafe1212c8"
977 acl: path access granted: "f9cafe1212c8"
985 acl: branch access granted: "911600dab2ae" on branch "default"
978 acl: branch access granted: "911600dab2ae" on branch "default"
986 error: pretxnchangegroup.acl hook failed: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae")
979 error: pretxnchangegroup.acl hook failed: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae")
987 bundle2-input-part: total payload size 1606
980 bundle2-input-part: total payload size 1606
988 bundle2-input-bundle: 3 parts total
981 bundle2-input-bundle: 3 parts total
989 transaction abort!
982 transaction abort!
990 rollback completed
983 rollback completed
991 abort: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae")
984 abort: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae")
992 no rollback information available
985 no rollback information available
993 0:6675d58eff77
986 0:6675d58eff77
994
987
995
988
996 acl.config can set only [acl.allow]/[acl.deny]
989 acl.config can set only [acl.allow]/[acl.deny]
997
990
998 $ echo '[hooks]' >> acl.config
991 $ echo '[hooks]' >> acl.config
999 $ echo 'changegroup.acl = false' >> acl.config
992 $ echo 'changegroup.acl = false' >> acl.config
1000 $ do_push barney
993 $ do_push barney
1001 Pushing as user barney
994 Pushing as user barney
1002 hgrc = """
995 hgrc = """
1003 [hooks]
996 [hooks]
1004 pretxnchangegroup.acl = python:hgext.acl.hook
997 pretxnchangegroup.acl = python:hgext.acl.hook
1005 [acl]
998 [acl]
1006 sources = push
999 sources = push
1007 [acl.allow]
1000 [acl.allow]
1008 foo/** = fred
1001 foo/** = fred
1009 [acl.deny]
1002 [acl.deny]
1010 foo/bar/** = fred
1003 foo/bar/** = fred
1011 foo/Bar/** = fred
1004 foo/Bar/** = fred
1012 [acl.allow]
1005 [acl.allow]
1013 ** = barney
1006 ** = barney
1014 **/*.txt = wilma
1007 **/*.txt = wilma
1015 [acl]
1008 [acl]
1016 config = ../acl.config
1009 config = ../acl.config
1017 """
1010 """
1018 acl.config = """
1011 acl.config = """
1019 [acl.allow]
1012 [acl.allow]
1020 foo/** = betty
1013 foo/** = betty
1021 [hooks]
1014 [hooks]
1022 changegroup.acl = false
1015 changegroup.acl = false
1023 """
1016 """
1024 pushing to ../b
1017 pushing to ../b
1025 query 1; heads
1018 query 1; heads
1026 searching for changes
1019 searching for changes
1027 all remote heads known locally
1020 all remote heads known locally
1028 listing keys for "phases"
1021 listing keys for "phases"
1029 checking for updated bookmarks
1022 checking for updated bookmarks
1030 listing keys for "bookmarks"
1023 listing keys for "bookmarks"
1031 invalid branchheads cache (served): tip differs
1024 invalid branchheads cache (served): tip differs
1032 listing keys for "bookmarks"
1025 listing keys for "bookmarks"
1033 3 changesets found
1026 3 changesets found
1034 list of changesets:
1027 list of changesets:
1035 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1028 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1036 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1029 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1037 911600dab2ae7a9baff75958b84fe606851ce955
1030 911600dab2ae7a9baff75958b84fe606851ce955
1038 bundle2-output-bundle: "HG20", 4 parts total
1031 bundle2-output-bundle: "HG20", 4 parts total
1039 bundle2-output-part: "replycaps" 155 bytes payload
1032 bundle2-output-part: "replycaps" 155 bytes payload
1040 bundle2-output-part: "check:heads" streamed payload
1033 bundle2-output-part: "check:heads" streamed payload
1041 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1034 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1042 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1035 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1043 bundle2-input-bundle: with-transaction
1036 bundle2-input-bundle: with-transaction
1044 bundle2-input-part: "replycaps" supported
1037 bundle2-input-part: "replycaps" supported
1045 bundle2-input-part: total payload size 155
1038 bundle2-input-part: total payload size 155
1046 bundle2-input-part: "check:heads" supported
1039 bundle2-input-part: "check:heads" supported
1047 bundle2-input-part: total payload size 20
1040 bundle2-input-part: total payload size 20
1048 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1041 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1049 adding changesets
1042 adding changesets
1050 add changeset ef1ea85a6374
1043 add changeset ef1ea85a6374
1051 add changeset f9cafe1212c8
1044 add changeset f9cafe1212c8
1052 add changeset 911600dab2ae
1045 add changeset 911600dab2ae
1053 adding manifests
1046 adding manifests
1054 adding file changes
1047 adding file changes
1055 adding foo/Bar/file.txt revisions
1048 adding foo/Bar/file.txt revisions
1056 adding foo/file.txt revisions
1049 adding foo/file.txt revisions
1057 adding quux/file.py revisions
1050 adding quux/file.py revisions
1058 added 3 changesets with 3 changes to 3 files
1051 added 3 changesets with 3 changes to 3 files
1059 calling hook pretxnchangegroup.acl: hgext.acl.hook
1052 calling hook pretxnchangegroup.acl: hgext.acl.hook
1060 acl: checking access for user "barney"
1053 acl: checking access for user "barney"
1061 acl: acl.allow.branches not enabled
1054 acl: acl.allow.branches not enabled
1062 acl: acl.deny.branches not enabled
1055 acl: acl.deny.branches not enabled
1063 acl: acl.allow enabled, 1 entries for user barney
1056 acl: acl.allow enabled, 1 entries for user barney
1064 acl: acl.deny enabled, 0 entries for user barney
1057 acl: acl.deny enabled, 0 entries for user barney
1065 acl: branch access granted: "ef1ea85a6374" on branch "default"
1058 acl: branch access granted: "ef1ea85a6374" on branch "default"
1066 acl: path access granted: "ef1ea85a6374"
1059 acl: path access granted: "ef1ea85a6374"
1067 acl: branch access granted: "f9cafe1212c8" on branch "default"
1060 acl: branch access granted: "f9cafe1212c8" on branch "default"
1068 acl: path access granted: "f9cafe1212c8"
1061 acl: path access granted: "f9cafe1212c8"
1069 acl: branch access granted: "911600dab2ae" on branch "default"
1062 acl: branch access granted: "911600dab2ae" on branch "default"
1070 acl: path access granted: "911600dab2ae"
1063 acl: path access granted: "911600dab2ae"
1071 bundle2-input-part: total payload size 1606
1064 bundle2-input-part: total payload size 1606
1072 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1065 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1073 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1066 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1074 bundle2-input-bundle: 3 parts total
1067 bundle2-input-bundle: 3 parts total
1075 updating the branch cache
1068 updating the branch cache
1076 bundle2-output-bundle: "HG20", 2 parts total
1069 bundle2-output-bundle: "HG20", 2 parts total
1077 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1070 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1078 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1071 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1079 bundle2-input-bundle: with-transaction
1072 bundle2-input-bundle: with-transaction
1080 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1073 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1081 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1074 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1082 bundle2-input-bundle: 1 parts total
1075 bundle2-input-bundle: 1 parts total
1083 listing keys for "phases"
1076 listing keys for "phases"
1084 repository tip rolled back to revision 0 (undo push)
1077 repository tip rolled back to revision 0 (undo push)
1085 0:6675d58eff77
1078 0:6675d58eff77
1086
1079
1087
1080
1088 asterisk
1081 asterisk
1089
1082
1090 $ init_config
1083 $ init_config
1091
1084
1092 asterisk test
1085 asterisk test
1093
1086
1094 $ echo '[acl.allow]' >> $config
1087 $ echo '[acl.allow]' >> $config
1095 $ echo "** = fred" >> $config
1088 $ echo "** = fred" >> $config
1096
1089
1097 fred is always allowed
1090 fred is always allowed
1098
1091
1099 $ do_push fred
1092 $ do_push fred
1100 Pushing as user fred
1093 Pushing as user fred
1101 hgrc = """
1094 hgrc = """
1102 [hooks]
1095 [hooks]
1103 pretxnchangegroup.acl = python:hgext.acl.hook
1096 pretxnchangegroup.acl = python:hgext.acl.hook
1104 [acl]
1097 [acl]
1105 sources = push
1098 sources = push
1106 [extensions]
1099 [extensions]
1107 [acl.allow]
1100 [acl.allow]
1108 ** = fred
1101 ** = fred
1109 """
1102 """
1110 pushing to ../b
1103 pushing to ../b
1111 query 1; heads
1104 query 1; heads
1112 searching for changes
1105 searching for changes
1113 all remote heads known locally
1106 all remote heads known locally
1114 listing keys for "phases"
1107 listing keys for "phases"
1115 checking for updated bookmarks
1108 checking for updated bookmarks
1116 listing keys for "bookmarks"
1109 listing keys for "bookmarks"
1117 invalid branchheads cache (served): tip differs
1110 invalid branchheads cache (served): tip differs
1118 listing keys for "bookmarks"
1111 listing keys for "bookmarks"
1119 3 changesets found
1112 3 changesets found
1120 list of changesets:
1113 list of changesets:
1121 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1114 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1122 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1115 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1123 911600dab2ae7a9baff75958b84fe606851ce955
1116 911600dab2ae7a9baff75958b84fe606851ce955
1124 bundle2-output-bundle: "HG20", 4 parts total
1117 bundle2-output-bundle: "HG20", 4 parts total
1125 bundle2-output-part: "replycaps" 155 bytes payload
1118 bundle2-output-part: "replycaps" 155 bytes payload
1126 bundle2-output-part: "check:heads" streamed payload
1119 bundle2-output-part: "check:heads" streamed payload
1127 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1120 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1128 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1121 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1129 bundle2-input-bundle: with-transaction
1122 bundle2-input-bundle: with-transaction
1130 bundle2-input-part: "replycaps" supported
1123 bundle2-input-part: "replycaps" supported
1131 bundle2-input-part: total payload size 155
1124 bundle2-input-part: total payload size 155
1132 bundle2-input-part: "check:heads" supported
1125 bundle2-input-part: "check:heads" supported
1133 bundle2-input-part: total payload size 20
1126 bundle2-input-part: total payload size 20
1134 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1127 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1135 adding changesets
1128 adding changesets
1136 add changeset ef1ea85a6374
1129 add changeset ef1ea85a6374
1137 add changeset f9cafe1212c8
1130 add changeset f9cafe1212c8
1138 add changeset 911600dab2ae
1131 add changeset 911600dab2ae
1139 adding manifests
1132 adding manifests
1140 adding file changes
1133 adding file changes
1141 adding foo/Bar/file.txt revisions
1134 adding foo/Bar/file.txt revisions
1142 adding foo/file.txt revisions
1135 adding foo/file.txt revisions
1143 adding quux/file.py revisions
1136 adding quux/file.py revisions
1144 added 3 changesets with 3 changes to 3 files
1137 added 3 changesets with 3 changes to 3 files
1145 calling hook pretxnchangegroup.acl: hgext.acl.hook
1138 calling hook pretxnchangegroup.acl: hgext.acl.hook
1146 acl: checking access for user "fred"
1139 acl: checking access for user "fred"
1147 acl: acl.allow.branches not enabled
1140 acl: acl.allow.branches not enabled
1148 acl: acl.deny.branches not enabled
1141 acl: acl.deny.branches not enabled
1149 acl: acl.allow enabled, 1 entries for user fred
1142 acl: acl.allow enabled, 1 entries for user fred
1150 acl: acl.deny not enabled
1143 acl: acl.deny not enabled
1151 acl: branch access granted: "ef1ea85a6374" on branch "default"
1144 acl: branch access granted: "ef1ea85a6374" on branch "default"
1152 acl: path access granted: "ef1ea85a6374"
1145 acl: path access granted: "ef1ea85a6374"
1153 acl: branch access granted: "f9cafe1212c8" on branch "default"
1146 acl: branch access granted: "f9cafe1212c8" on branch "default"
1154 acl: path access granted: "f9cafe1212c8"
1147 acl: path access granted: "f9cafe1212c8"
1155 acl: branch access granted: "911600dab2ae" on branch "default"
1148 acl: branch access granted: "911600dab2ae" on branch "default"
1156 acl: path access granted: "911600dab2ae"
1149 acl: path access granted: "911600dab2ae"
1157 bundle2-input-part: total payload size 1606
1150 bundle2-input-part: total payload size 1606
1158 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1151 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1159 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1152 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1160 bundle2-input-bundle: 3 parts total
1153 bundle2-input-bundle: 3 parts total
1161 updating the branch cache
1154 updating the branch cache
1162 bundle2-output-bundle: "HG20", 2 parts total
1155 bundle2-output-bundle: "HG20", 2 parts total
1163 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1156 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1164 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1157 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1165 bundle2-input-bundle: with-transaction
1158 bundle2-input-bundle: with-transaction
1166 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1159 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1167 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1160 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1168 bundle2-input-bundle: 1 parts total
1161 bundle2-input-bundle: 1 parts total
1169 listing keys for "phases"
1162 listing keys for "phases"
1170 repository tip rolled back to revision 0 (undo push)
1163 repository tip rolled back to revision 0 (undo push)
1171 0:6675d58eff77
1164 0:6675d58eff77
1172
1165
1173
1166
1174 $ echo '[acl.deny]' >> $config
1167 $ echo '[acl.deny]' >> $config
1175 $ echo "foo/Bar/** = *" >> $config
1168 $ echo "foo/Bar/** = *" >> $config
1176
1169
1177 no one is allowed inside foo/Bar/
1170 no one is allowed inside foo/Bar/
1178
1171
1179 $ do_push fred
1172 $ do_push fred
1180 Pushing as user fred
1173 Pushing as user fred
1181 hgrc = """
1174 hgrc = """
1182 [hooks]
1175 [hooks]
1183 pretxnchangegroup.acl = python:hgext.acl.hook
1176 pretxnchangegroup.acl = python:hgext.acl.hook
1184 [acl]
1177 [acl]
1185 sources = push
1178 sources = push
1186 [extensions]
1179 [extensions]
1187 [acl.allow]
1180 [acl.allow]
1188 ** = fred
1181 ** = fred
1189 [acl.deny]
1182 [acl.deny]
1190 foo/Bar/** = *
1183 foo/Bar/** = *
1191 """
1184 """
1192 pushing to ../b
1185 pushing to ../b
1193 query 1; heads
1186 query 1; heads
1194 searching for changes
1187 searching for changes
1195 all remote heads known locally
1188 all remote heads known locally
1196 listing keys for "phases"
1189 listing keys for "phases"
1197 checking for updated bookmarks
1190 checking for updated bookmarks
1198 listing keys for "bookmarks"
1191 listing keys for "bookmarks"
1199 invalid branchheads cache (served): tip differs
1192 invalid branchheads cache (served): tip differs
1200 listing keys for "bookmarks"
1193 listing keys for "bookmarks"
1201 3 changesets found
1194 3 changesets found
1202 list of changesets:
1195 list of changesets:
1203 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1196 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1204 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1197 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1205 911600dab2ae7a9baff75958b84fe606851ce955
1198 911600dab2ae7a9baff75958b84fe606851ce955
1206 bundle2-output-bundle: "HG20", 4 parts total
1199 bundle2-output-bundle: "HG20", 4 parts total
1207 bundle2-output-part: "replycaps" 155 bytes payload
1200 bundle2-output-part: "replycaps" 155 bytes payload
1208 bundle2-output-part: "check:heads" streamed payload
1201 bundle2-output-part: "check:heads" streamed payload
1209 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1202 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1210 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1203 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1211 bundle2-input-bundle: with-transaction
1204 bundle2-input-bundle: with-transaction
1212 bundle2-input-part: "replycaps" supported
1205 bundle2-input-part: "replycaps" supported
1213 bundle2-input-part: total payload size 155
1206 bundle2-input-part: total payload size 155
1214 bundle2-input-part: "check:heads" supported
1207 bundle2-input-part: "check:heads" supported
1215 bundle2-input-part: total payload size 20
1208 bundle2-input-part: total payload size 20
1216 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1209 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1217 adding changesets
1210 adding changesets
1218 add changeset ef1ea85a6374
1211 add changeset ef1ea85a6374
1219 add changeset f9cafe1212c8
1212 add changeset f9cafe1212c8
1220 add changeset 911600dab2ae
1213 add changeset 911600dab2ae
1221 adding manifests
1214 adding manifests
1222 adding file changes
1215 adding file changes
1223 adding foo/Bar/file.txt revisions
1216 adding foo/Bar/file.txt revisions
1224 adding foo/file.txt revisions
1217 adding foo/file.txt revisions
1225 adding quux/file.py revisions
1218 adding quux/file.py revisions
1226 added 3 changesets with 3 changes to 3 files
1219 added 3 changesets with 3 changes to 3 files
1227 calling hook pretxnchangegroup.acl: hgext.acl.hook
1220 calling hook pretxnchangegroup.acl: hgext.acl.hook
1228 acl: checking access for user "fred"
1221 acl: checking access for user "fred"
1229 acl: acl.allow.branches not enabled
1222 acl: acl.allow.branches not enabled
1230 acl: acl.deny.branches not enabled
1223 acl: acl.deny.branches not enabled
1231 acl: acl.allow enabled, 1 entries for user fred
1224 acl: acl.allow enabled, 1 entries for user fred
1232 acl: acl.deny enabled, 1 entries for user fred
1225 acl: acl.deny enabled, 1 entries for user fred
1233 acl: branch access granted: "ef1ea85a6374" on branch "default"
1226 acl: branch access granted: "ef1ea85a6374" on branch "default"
1234 acl: path access granted: "ef1ea85a6374"
1227 acl: path access granted: "ef1ea85a6374"
1235 acl: branch access granted: "f9cafe1212c8" on branch "default"
1228 acl: branch access granted: "f9cafe1212c8" on branch "default"
1236 error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
1229 error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
1237 bundle2-input-part: total payload size 1606
1230 bundle2-input-part: total payload size 1606
1238 bundle2-input-bundle: 3 parts total
1231 bundle2-input-bundle: 3 parts total
1239 transaction abort!
1232 transaction abort!
1240 rollback completed
1233 rollback completed
1241 abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
1234 abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
1242 no rollback information available
1235 no rollback information available
1243 0:6675d58eff77
1236 0:6675d58eff77
1244
1237
1245
1238
1246 Groups
1239 Groups
1247
1240
1248 $ init_config
1241 $ init_config
1249
1242
1250 OS-level groups
1243 OS-level groups
1251
1244
1252 $ echo '[acl.allow]' >> $config
1245 $ echo '[acl.allow]' >> $config
1253 $ echo "** = @group1" >> $config
1246 $ echo "** = @group1" >> $config
1254
1247
1255 @group1 is always allowed
1248 @group1 is always allowed
1256
1249
1257 $ do_push fred
1250 $ do_push fred
1258 Pushing as user fred
1251 Pushing as user fred
1259 hgrc = """
1252 hgrc = """
1260 [hooks]
1253 [hooks]
1261 pretxnchangegroup.acl = python:hgext.acl.hook
1254 pretxnchangegroup.acl = python:hgext.acl.hook
1262 [acl]
1255 [acl]
1263 sources = push
1256 sources = push
1264 [extensions]
1257 [extensions]
1265 [acl.allow]
1258 [acl.allow]
1266 ** = @group1
1259 ** = @group1
1267 """
1260 """
1268 pushing to ../b
1261 pushing to ../b
1269 query 1; heads
1262 query 1; heads
1270 searching for changes
1263 searching for changes
1271 all remote heads known locally
1264 all remote heads known locally
1272 listing keys for "phases"
1265 listing keys for "phases"
1273 checking for updated bookmarks
1266 checking for updated bookmarks
1274 listing keys for "bookmarks"
1267 listing keys for "bookmarks"
1275 invalid branchheads cache (served): tip differs
1268 invalid branchheads cache (served): tip differs
1276 listing keys for "bookmarks"
1269 listing keys for "bookmarks"
1277 3 changesets found
1270 3 changesets found
1278 list of changesets:
1271 list of changesets:
1279 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1272 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1280 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1273 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1281 911600dab2ae7a9baff75958b84fe606851ce955
1274 911600dab2ae7a9baff75958b84fe606851ce955
1282 bundle2-output-bundle: "HG20", 4 parts total
1275 bundle2-output-bundle: "HG20", 4 parts total
1283 bundle2-output-part: "replycaps" 155 bytes payload
1276 bundle2-output-part: "replycaps" 155 bytes payload
1284 bundle2-output-part: "check:heads" streamed payload
1277 bundle2-output-part: "check:heads" streamed payload
1285 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1278 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1286 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1279 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1287 bundle2-input-bundle: with-transaction
1280 bundle2-input-bundle: with-transaction
1288 bundle2-input-part: "replycaps" supported
1281 bundle2-input-part: "replycaps" supported
1289 bundle2-input-part: total payload size 155
1282 bundle2-input-part: total payload size 155
1290 bundle2-input-part: "check:heads" supported
1283 bundle2-input-part: "check:heads" supported
1291 bundle2-input-part: total payload size 20
1284 bundle2-input-part: total payload size 20
1292 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1285 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1293 adding changesets
1286 adding changesets
1294 add changeset ef1ea85a6374
1287 add changeset ef1ea85a6374
1295 add changeset f9cafe1212c8
1288 add changeset f9cafe1212c8
1296 add changeset 911600dab2ae
1289 add changeset 911600dab2ae
1297 adding manifests
1290 adding manifests
1298 adding file changes
1291 adding file changes
1299 adding foo/Bar/file.txt revisions
1292 adding foo/Bar/file.txt revisions
1300 adding foo/file.txt revisions
1293 adding foo/file.txt revisions
1301 adding quux/file.py revisions
1294 adding quux/file.py revisions
1302 added 3 changesets with 3 changes to 3 files
1295 added 3 changesets with 3 changes to 3 files
1303 calling hook pretxnchangegroup.acl: hgext.acl.hook
1296 calling hook pretxnchangegroup.acl: hgext.acl.hook
1304 acl: checking access for user "fred"
1297 acl: checking access for user "fred"
1305 acl: acl.allow.branches not enabled
1298 acl: acl.allow.branches not enabled
1306 acl: acl.deny.branches not enabled
1299 acl: acl.deny.branches not enabled
1307 acl: "group1" not defined in [acl.groups]
1300 acl: "group1" not defined in [acl.groups]
1308 acl: acl.allow enabled, 1 entries for user fred
1301 acl: acl.allow enabled, 1 entries for user fred
1309 acl: acl.deny not enabled
1302 acl: acl.deny not enabled
1310 acl: branch access granted: "ef1ea85a6374" on branch "default"
1303 acl: branch access granted: "ef1ea85a6374" on branch "default"
1311 acl: path access granted: "ef1ea85a6374"
1304 acl: path access granted: "ef1ea85a6374"
1312 acl: branch access granted: "f9cafe1212c8" on branch "default"
1305 acl: branch access granted: "f9cafe1212c8" on branch "default"
1313 acl: path access granted: "f9cafe1212c8"
1306 acl: path access granted: "f9cafe1212c8"
1314 acl: branch access granted: "911600dab2ae" on branch "default"
1307 acl: branch access granted: "911600dab2ae" on branch "default"
1315 acl: path access granted: "911600dab2ae"
1308 acl: path access granted: "911600dab2ae"
1316 bundle2-input-part: total payload size 1606
1309 bundle2-input-part: total payload size 1606
1317 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1310 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1318 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1311 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1319 bundle2-input-bundle: 3 parts total
1312 bundle2-input-bundle: 3 parts total
1320 updating the branch cache
1313 updating the branch cache
1321 bundle2-output-bundle: "HG20", 2 parts total
1314 bundle2-output-bundle: "HG20", 2 parts total
1322 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1315 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1323 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1316 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1324 bundle2-input-bundle: with-transaction
1317 bundle2-input-bundle: with-transaction
1325 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1318 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1326 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1319 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1327 bundle2-input-bundle: 1 parts total
1320 bundle2-input-bundle: 1 parts total
1328 listing keys for "phases"
1321 listing keys for "phases"
1329 repository tip rolled back to revision 0 (undo push)
1322 repository tip rolled back to revision 0 (undo push)
1330 0:6675d58eff77
1323 0:6675d58eff77
1331
1324
1332
1325
1333 $ echo '[acl.deny]' >> $config
1326 $ echo '[acl.deny]' >> $config
1334 $ echo "foo/Bar/** = @group1" >> $config
1327 $ echo "foo/Bar/** = @group1" >> $config
1335
1328
1336 @group is allowed inside anything but foo/Bar/
1329 @group is allowed inside anything but foo/Bar/
1337
1330
1338 $ do_push fred
1331 $ do_push fred
1339 Pushing as user fred
1332 Pushing as user fred
1340 hgrc = """
1333 hgrc = """
1341 [hooks]
1334 [hooks]
1342 pretxnchangegroup.acl = python:hgext.acl.hook
1335 pretxnchangegroup.acl = python:hgext.acl.hook
1343 [acl]
1336 [acl]
1344 sources = push
1337 sources = push
1345 [extensions]
1338 [extensions]
1346 [acl.allow]
1339 [acl.allow]
1347 ** = @group1
1340 ** = @group1
1348 [acl.deny]
1341 [acl.deny]
1349 foo/Bar/** = @group1
1342 foo/Bar/** = @group1
1350 """
1343 """
1351 pushing to ../b
1344 pushing to ../b
1352 query 1; heads
1345 query 1; heads
1353 searching for changes
1346 searching for changes
1354 all remote heads known locally
1347 all remote heads known locally
1355 listing keys for "phases"
1348 listing keys for "phases"
1356 checking for updated bookmarks
1349 checking for updated bookmarks
1357 listing keys for "bookmarks"
1350 listing keys for "bookmarks"
1358 invalid branchheads cache (served): tip differs
1351 invalid branchheads cache (served): tip differs
1359 listing keys for "bookmarks"
1352 listing keys for "bookmarks"
1360 3 changesets found
1353 3 changesets found
1361 list of changesets:
1354 list of changesets:
1362 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1355 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1363 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1356 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1364 911600dab2ae7a9baff75958b84fe606851ce955
1357 911600dab2ae7a9baff75958b84fe606851ce955
1365 bundle2-output-bundle: "HG20", 4 parts total
1358 bundle2-output-bundle: "HG20", 4 parts total
1366 bundle2-output-part: "replycaps" 155 bytes payload
1359 bundle2-output-part: "replycaps" 155 bytes payload
1367 bundle2-output-part: "check:heads" streamed payload
1360 bundle2-output-part: "check:heads" streamed payload
1368 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1361 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1369 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1362 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1370 bundle2-input-bundle: with-transaction
1363 bundle2-input-bundle: with-transaction
1371 bundle2-input-part: "replycaps" supported
1364 bundle2-input-part: "replycaps" supported
1372 bundle2-input-part: total payload size 155
1365 bundle2-input-part: total payload size 155
1373 bundle2-input-part: "check:heads" supported
1366 bundle2-input-part: "check:heads" supported
1374 bundle2-input-part: total payload size 20
1367 bundle2-input-part: total payload size 20
1375 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1368 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1376 adding changesets
1369 adding changesets
1377 add changeset ef1ea85a6374
1370 add changeset ef1ea85a6374
1378 add changeset f9cafe1212c8
1371 add changeset f9cafe1212c8
1379 add changeset 911600dab2ae
1372 add changeset 911600dab2ae
1380 adding manifests
1373 adding manifests
1381 adding file changes
1374 adding file changes
1382 adding foo/Bar/file.txt revisions
1375 adding foo/Bar/file.txt revisions
1383 adding foo/file.txt revisions
1376 adding foo/file.txt revisions
1384 adding quux/file.py revisions
1377 adding quux/file.py revisions
1385 added 3 changesets with 3 changes to 3 files
1378 added 3 changesets with 3 changes to 3 files
1386 calling hook pretxnchangegroup.acl: hgext.acl.hook
1379 calling hook pretxnchangegroup.acl: hgext.acl.hook
1387 acl: checking access for user "fred"
1380 acl: checking access for user "fred"
1388 acl: acl.allow.branches not enabled
1381 acl: acl.allow.branches not enabled
1389 acl: acl.deny.branches not enabled
1382 acl: acl.deny.branches not enabled
1390 acl: "group1" not defined in [acl.groups]
1383 acl: "group1" not defined in [acl.groups]
1391 acl: acl.allow enabled, 1 entries for user fred
1384 acl: acl.allow enabled, 1 entries for user fred
1392 acl: "group1" not defined in [acl.groups]
1385 acl: "group1" not defined in [acl.groups]
1393 acl: acl.deny enabled, 1 entries for user fred
1386 acl: acl.deny enabled, 1 entries for user fred
1394 acl: branch access granted: "ef1ea85a6374" on branch "default"
1387 acl: branch access granted: "ef1ea85a6374" on branch "default"
1395 acl: path access granted: "ef1ea85a6374"
1388 acl: path access granted: "ef1ea85a6374"
1396 acl: branch access granted: "f9cafe1212c8" on branch "default"
1389 acl: branch access granted: "f9cafe1212c8" on branch "default"
1397 error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
1390 error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
1398 bundle2-input-part: total payload size 1606
1391 bundle2-input-part: total payload size 1606
1399 bundle2-input-bundle: 3 parts total
1392 bundle2-input-bundle: 3 parts total
1400 transaction abort!
1393 transaction abort!
1401 rollback completed
1394 rollback completed
1402 abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
1395 abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
1403 no rollback information available
1396 no rollback information available
1404 0:6675d58eff77
1397 0:6675d58eff77
1405
1398
1406
1399
1407 Invalid group
1400 Invalid group
1408
1401
1409 Disable the fakegroups trick to get real failures
1402 Disable the fakegroups trick to get real failures
1410
1403
1411 $ grep -v fakegroups $config > config.tmp
1404 $ grep -v fakegroups $config > config.tmp
1412 $ mv config.tmp $config
1405 $ mv config.tmp $config
1413 $ echo '[acl.allow]' >> $config
1406 $ echo '[acl.allow]' >> $config
1414 $ echo "** = @unlikelytoexist" >> $config
1407 $ echo "** = @unlikelytoexist" >> $config
1415 $ do_push fred 2>&1 | grep unlikelytoexist
1408 $ do_push fred 2>&1 | grep unlikelytoexist
1416 ** = @unlikelytoexist
1409 ** = @unlikelytoexist
1417 acl: "unlikelytoexist" not defined in [acl.groups]
1410 acl: "unlikelytoexist" not defined in [acl.groups]
1418 error: pretxnchangegroup.acl hook failed: group 'unlikelytoexist' is undefined
1411 error: pretxnchangegroup.acl hook failed: group 'unlikelytoexist' is undefined
1419 abort: group 'unlikelytoexist' is undefined
1412 abort: group 'unlikelytoexist' is undefined
1420
1413
1421
1414
1422 Branch acl tests setup
1415 Branch acl tests setup
1423
1416
1424 $ init_config
1417 $ init_config
1425 $ cd b
1418 $ cd b
1426 $ hg up
1419 $ hg up
1427 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1420 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1428 $ hg branch foobar
1421 $ hg branch foobar
1429 marked working directory as branch foobar
1422 marked working directory as branch foobar
1430 (branches are permanent and global, did you want a bookmark?)
1423 (branches are permanent and global, did you want a bookmark?)
1431 $ hg commit -m 'create foobar'
1424 $ hg commit -m 'create foobar'
1432 $ echo 'foo contents' > abc.txt
1425 $ echo 'foo contents' > abc.txt
1433 $ hg add abc.txt
1426 $ hg add abc.txt
1434 $ hg commit -m 'foobar contents'
1427 $ hg commit -m 'foobar contents'
1435 $ cd ..
1428 $ cd ..
1436 $ hg --cwd a pull ../b
1429 $ hg --cwd a pull ../b
1437 pulling from ../b
1430 pulling from ../b
1438 searching for changes
1431 searching for changes
1439 adding changesets
1432 adding changesets
1440 adding manifests
1433 adding manifests
1441 adding file changes
1434 adding file changes
1442 added 2 changesets with 1 changes to 1 files (+1 heads)
1435 added 2 changesets with 1 changes to 1 files (+1 heads)
1443 (run 'hg heads' to see heads)
1436 (run 'hg heads' to see heads)
1444
1437
1445 Create additional changeset on foobar branch
1438 Create additional changeset on foobar branch
1446
1439
1447 $ cd a
1440 $ cd a
1448 $ hg up -C foobar
1441 $ hg up -C foobar
1449 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
1442 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
1450 $ echo 'foo contents2' > abc.txt
1443 $ echo 'foo contents2' > abc.txt
1451 $ hg commit -m 'foobar contents2'
1444 $ hg commit -m 'foobar contents2'
1452 $ cd ..
1445 $ cd ..
1453
1446
1454
1447
1455 No branch acls specified
1448 No branch acls specified
1456
1449
1457 $ do_push astro
1450 $ do_push astro
1458 Pushing as user astro
1451 Pushing as user astro
1459 hgrc = """
1452 hgrc = """
1460 [hooks]
1453 [hooks]
1461 pretxnchangegroup.acl = python:hgext.acl.hook
1454 pretxnchangegroup.acl = python:hgext.acl.hook
1462 [acl]
1455 [acl]
1463 sources = push
1456 sources = push
1464 [extensions]
1457 [extensions]
1465 """
1458 """
1466 pushing to ../b
1459 pushing to ../b
1467 query 1; heads
1460 query 1; heads
1468 searching for changes
1461 searching for changes
1469 all remote heads known locally
1462 all remote heads known locally
1470 listing keys for "phases"
1463 listing keys for "phases"
1471 checking for updated bookmarks
1464 checking for updated bookmarks
1472 listing keys for "bookmarks"
1465 listing keys for "bookmarks"
1473 listing keys for "bookmarks"
1466 listing keys for "bookmarks"
1474 4 changesets found
1467 4 changesets found
1475 list of changesets:
1468 list of changesets:
1476 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1469 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1477 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1470 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1478 911600dab2ae7a9baff75958b84fe606851ce955
1471 911600dab2ae7a9baff75958b84fe606851ce955
1479 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1472 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1480 bundle2-output-bundle: "HG20", 5 parts total
1473 bundle2-output-bundle: "HG20", 5 parts total
1481 bundle2-output-part: "replycaps" 155 bytes payload
1474 bundle2-output-part: "replycaps" 155 bytes payload
1482 bundle2-output-part: "check:heads" streamed payload
1475 bundle2-output-part: "check:heads" streamed payload
1483 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1476 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1484 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1477 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1485 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1478 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1486 bundle2-input-bundle: with-transaction
1479 bundle2-input-bundle: with-transaction
1487 bundle2-input-part: "replycaps" supported
1480 bundle2-input-part: "replycaps" supported
1488 bundle2-input-part: total payload size 155
1481 bundle2-input-part: total payload size 155
1489 bundle2-input-part: "check:heads" supported
1482 bundle2-input-part: "check:heads" supported
1490 bundle2-input-part: total payload size 20
1483 bundle2-input-part: total payload size 20
1491 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1484 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1492 adding changesets
1485 adding changesets
1493 add changeset ef1ea85a6374
1486 add changeset ef1ea85a6374
1494 add changeset f9cafe1212c8
1487 add changeset f9cafe1212c8
1495 add changeset 911600dab2ae
1488 add changeset 911600dab2ae
1496 add changeset e8fc755d4d82
1489 add changeset e8fc755d4d82
1497 adding manifests
1490 adding manifests
1498 adding file changes
1491 adding file changes
1499 adding abc.txt revisions
1492 adding abc.txt revisions
1500 adding foo/Bar/file.txt revisions
1493 adding foo/Bar/file.txt revisions
1501 adding foo/file.txt revisions
1494 adding foo/file.txt revisions
1502 adding quux/file.py revisions
1495 adding quux/file.py revisions
1503 added 4 changesets with 4 changes to 4 files (+1 heads)
1496 added 4 changesets with 4 changes to 4 files (+1 heads)
1504 calling hook pretxnchangegroup.acl: hgext.acl.hook
1497 calling hook pretxnchangegroup.acl: hgext.acl.hook
1505 acl: checking access for user "astro"
1498 acl: checking access for user "astro"
1506 acl: acl.allow.branches not enabled
1499 acl: acl.allow.branches not enabled
1507 acl: acl.deny.branches not enabled
1500 acl: acl.deny.branches not enabled
1508 acl: acl.allow not enabled
1501 acl: acl.allow not enabled
1509 acl: acl.deny not enabled
1502 acl: acl.deny not enabled
1510 acl: branch access granted: "ef1ea85a6374" on branch "default"
1503 acl: branch access granted: "ef1ea85a6374" on branch "default"
1511 acl: path access granted: "ef1ea85a6374"
1504 acl: path access granted: "ef1ea85a6374"
1512 acl: branch access granted: "f9cafe1212c8" on branch "default"
1505 acl: branch access granted: "f9cafe1212c8" on branch "default"
1513 acl: path access granted: "f9cafe1212c8"
1506 acl: path access granted: "f9cafe1212c8"
1514 acl: branch access granted: "911600dab2ae" on branch "default"
1507 acl: branch access granted: "911600dab2ae" on branch "default"
1515 acl: path access granted: "911600dab2ae"
1508 acl: path access granted: "911600dab2ae"
1516 acl: branch access granted: "e8fc755d4d82" on branch "foobar"
1509 acl: branch access granted: "e8fc755d4d82" on branch "foobar"
1517 acl: path access granted: "e8fc755d4d82"
1510 acl: path access granted: "e8fc755d4d82"
1518 bundle2-input-part: total payload size 2101
1511 bundle2-input-part: total payload size 2101
1519 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1512 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1520 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1513 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1521 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1514 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1522 pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01"
1515 pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01"
1523 bundle2-input-bundle: 4 parts total
1516 bundle2-input-bundle: 4 parts total
1524 updating the branch cache
1517 updating the branch cache
1525 bundle2-output-bundle: "HG20", 3 parts total
1518 bundle2-output-bundle: "HG20", 3 parts total
1526 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1519 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1527 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1520 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1528 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1521 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1529 bundle2-input-bundle: with-transaction
1522 bundle2-input-bundle: with-transaction
1530 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1523 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1531 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1524 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1532 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1525 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1533 bundle2-input-bundle: 2 parts total
1526 bundle2-input-bundle: 2 parts total
1534 listing keys for "phases"
1527 listing keys for "phases"
1535 repository tip rolled back to revision 2 (undo push)
1528 repository tip rolled back to revision 2 (undo push)
1536 2:fb35475503ef
1529 2:fb35475503ef
1537
1530
1538
1531
1539 Branch acl deny test
1532 Branch acl deny test
1540
1533
1541 $ echo "[acl.deny.branches]" >> $config
1534 $ echo "[acl.deny.branches]" >> $config
1542 $ echo "foobar = *" >> $config
1535 $ echo "foobar = *" >> $config
1543 $ do_push astro
1536 $ do_push astro
1544 Pushing as user astro
1537 Pushing as user astro
1545 hgrc = """
1538 hgrc = """
1546 [hooks]
1539 [hooks]
1547 pretxnchangegroup.acl = python:hgext.acl.hook
1540 pretxnchangegroup.acl = python:hgext.acl.hook
1548 [acl]
1541 [acl]
1549 sources = push
1542 sources = push
1550 [extensions]
1543 [extensions]
1551 [acl.deny.branches]
1544 [acl.deny.branches]
1552 foobar = *
1545 foobar = *
1553 """
1546 """
1554 pushing to ../b
1547 pushing to ../b
1555 query 1; heads
1548 query 1; heads
1556 searching for changes
1549 searching for changes
1557 all remote heads known locally
1550 all remote heads known locally
1558 listing keys for "phases"
1551 listing keys for "phases"
1559 checking for updated bookmarks
1552 checking for updated bookmarks
1560 listing keys for "bookmarks"
1553 listing keys for "bookmarks"
1561 listing keys for "bookmarks"
1554 listing keys for "bookmarks"
1562 4 changesets found
1555 4 changesets found
1563 list of changesets:
1556 list of changesets:
1564 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1557 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1565 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1558 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1566 911600dab2ae7a9baff75958b84fe606851ce955
1559 911600dab2ae7a9baff75958b84fe606851ce955
1567 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1560 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1568 bundle2-output-bundle: "HG20", 5 parts total
1561 bundle2-output-bundle: "HG20", 5 parts total
1569 bundle2-output-part: "replycaps" 155 bytes payload
1562 bundle2-output-part: "replycaps" 155 bytes payload
1570 bundle2-output-part: "check:heads" streamed payload
1563 bundle2-output-part: "check:heads" streamed payload
1571 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1564 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1572 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1565 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1573 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1566 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1574 bundle2-input-bundle: with-transaction
1567 bundle2-input-bundle: with-transaction
1575 bundle2-input-part: "replycaps" supported
1568 bundle2-input-part: "replycaps" supported
1576 bundle2-input-part: total payload size 155
1569 bundle2-input-part: total payload size 155
1577 bundle2-input-part: "check:heads" supported
1570 bundle2-input-part: "check:heads" supported
1578 bundle2-input-part: total payload size 20
1571 bundle2-input-part: total payload size 20
1579 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1572 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1580 adding changesets
1573 adding changesets
1581 add changeset ef1ea85a6374
1574 add changeset ef1ea85a6374
1582 add changeset f9cafe1212c8
1575 add changeset f9cafe1212c8
1583 add changeset 911600dab2ae
1576 add changeset 911600dab2ae
1584 add changeset e8fc755d4d82
1577 add changeset e8fc755d4d82
1585 adding manifests
1578 adding manifests
1586 adding file changes
1579 adding file changes
1587 adding abc.txt revisions
1580 adding abc.txt revisions
1588 adding foo/Bar/file.txt revisions
1581 adding foo/Bar/file.txt revisions
1589 adding foo/file.txt revisions
1582 adding foo/file.txt revisions
1590 adding quux/file.py revisions
1583 adding quux/file.py revisions
1591 added 4 changesets with 4 changes to 4 files (+1 heads)
1584 added 4 changesets with 4 changes to 4 files (+1 heads)
1592 calling hook pretxnchangegroup.acl: hgext.acl.hook
1585 calling hook pretxnchangegroup.acl: hgext.acl.hook
1593 acl: checking access for user "astro"
1586 acl: checking access for user "astro"
1594 acl: acl.allow.branches not enabled
1587 acl: acl.allow.branches not enabled
1595 acl: acl.deny.branches enabled, 1 entries for user astro
1588 acl: acl.deny.branches enabled, 1 entries for user astro
1596 acl: acl.allow not enabled
1589 acl: acl.allow not enabled
1597 acl: acl.deny not enabled
1590 acl: acl.deny not enabled
1598 acl: branch access granted: "ef1ea85a6374" on branch "default"
1591 acl: branch access granted: "ef1ea85a6374" on branch "default"
1599 acl: path access granted: "ef1ea85a6374"
1592 acl: path access granted: "ef1ea85a6374"
1600 acl: branch access granted: "f9cafe1212c8" on branch "default"
1593 acl: branch access granted: "f9cafe1212c8" on branch "default"
1601 acl: path access granted: "f9cafe1212c8"
1594 acl: path access granted: "f9cafe1212c8"
1602 acl: branch access granted: "911600dab2ae" on branch "default"
1595 acl: branch access granted: "911600dab2ae" on branch "default"
1603 acl: path access granted: "911600dab2ae"
1596 acl: path access granted: "911600dab2ae"
1604 error: pretxnchangegroup.acl hook failed: acl: user "astro" denied on branch "foobar" (changeset "e8fc755d4d82")
1597 error: pretxnchangegroup.acl hook failed: acl: user "astro" denied on branch "foobar" (changeset "e8fc755d4d82")
1605 bundle2-input-part: total payload size 2101
1598 bundle2-input-part: total payload size 2101
1606 bundle2-input-bundle: 4 parts total
1599 bundle2-input-bundle: 4 parts total
1607 transaction abort!
1600 transaction abort!
1608 rollback completed
1601 rollback completed
1609 abort: acl: user "astro" denied on branch "foobar" (changeset "e8fc755d4d82")
1602 abort: acl: user "astro" denied on branch "foobar" (changeset "e8fc755d4d82")
1610 no rollback information available
1603 no rollback information available
1611 2:fb35475503ef
1604 2:fb35475503ef
1612
1605
1613
1606
1614 Branch acl empty allow test
1607 Branch acl empty allow test
1615
1608
1616 $ init_config
1609 $ init_config
1617 $ echo "[acl.allow.branches]" >> $config
1610 $ echo "[acl.allow.branches]" >> $config
1618 $ do_push astro
1611 $ do_push astro
1619 Pushing as user astro
1612 Pushing as user astro
1620 hgrc = """
1613 hgrc = """
1621 [hooks]
1614 [hooks]
1622 pretxnchangegroup.acl = python:hgext.acl.hook
1615 pretxnchangegroup.acl = python:hgext.acl.hook
1623 [acl]
1616 [acl]
1624 sources = push
1617 sources = push
1625 [extensions]
1618 [extensions]
1626 [acl.allow.branches]
1619 [acl.allow.branches]
1627 """
1620 """
1628 pushing to ../b
1621 pushing to ../b
1629 query 1; heads
1622 query 1; heads
1630 searching for changes
1623 searching for changes
1631 all remote heads known locally
1624 all remote heads known locally
1632 listing keys for "phases"
1625 listing keys for "phases"
1633 checking for updated bookmarks
1626 checking for updated bookmarks
1634 listing keys for "bookmarks"
1627 listing keys for "bookmarks"
1635 listing keys for "bookmarks"
1628 listing keys for "bookmarks"
1636 4 changesets found
1629 4 changesets found
1637 list of changesets:
1630 list of changesets:
1638 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1631 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1639 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1632 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1640 911600dab2ae7a9baff75958b84fe606851ce955
1633 911600dab2ae7a9baff75958b84fe606851ce955
1641 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1634 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1642 bundle2-output-bundle: "HG20", 5 parts total
1635 bundle2-output-bundle: "HG20", 5 parts total
1643 bundle2-output-part: "replycaps" 155 bytes payload
1636 bundle2-output-part: "replycaps" 155 bytes payload
1644 bundle2-output-part: "check:heads" streamed payload
1637 bundle2-output-part: "check:heads" streamed payload
1645 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1638 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1646 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1639 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1647 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1640 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1648 bundle2-input-bundle: with-transaction
1641 bundle2-input-bundle: with-transaction
1649 bundle2-input-part: "replycaps" supported
1642 bundle2-input-part: "replycaps" supported
1650 bundle2-input-part: total payload size 155
1643 bundle2-input-part: total payload size 155
1651 bundle2-input-part: "check:heads" supported
1644 bundle2-input-part: "check:heads" supported
1652 bundle2-input-part: total payload size 20
1645 bundle2-input-part: total payload size 20
1653 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1646 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1654 adding changesets
1647 adding changesets
1655 add changeset ef1ea85a6374
1648 add changeset ef1ea85a6374
1656 add changeset f9cafe1212c8
1649 add changeset f9cafe1212c8
1657 add changeset 911600dab2ae
1650 add changeset 911600dab2ae
1658 add changeset e8fc755d4d82
1651 add changeset e8fc755d4d82
1659 adding manifests
1652 adding manifests
1660 adding file changes
1653 adding file changes
1661 adding abc.txt revisions
1654 adding abc.txt revisions
1662 adding foo/Bar/file.txt revisions
1655 adding foo/Bar/file.txt revisions
1663 adding foo/file.txt revisions
1656 adding foo/file.txt revisions
1664 adding quux/file.py revisions
1657 adding quux/file.py revisions
1665 added 4 changesets with 4 changes to 4 files (+1 heads)
1658 added 4 changesets with 4 changes to 4 files (+1 heads)
1666 calling hook pretxnchangegroup.acl: hgext.acl.hook
1659 calling hook pretxnchangegroup.acl: hgext.acl.hook
1667 acl: checking access for user "astro"
1660 acl: checking access for user "astro"
1668 acl: acl.allow.branches enabled, 0 entries for user astro
1661 acl: acl.allow.branches enabled, 0 entries for user astro
1669 acl: acl.deny.branches not enabled
1662 acl: acl.deny.branches not enabled
1670 acl: acl.allow not enabled
1663 acl: acl.allow not enabled
1671 acl: acl.deny not enabled
1664 acl: acl.deny not enabled
1672 error: pretxnchangegroup.acl hook failed: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
1665 error: pretxnchangegroup.acl hook failed: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
1673 bundle2-input-part: total payload size 2101
1666 bundle2-input-part: total payload size 2101
1674 bundle2-input-bundle: 4 parts total
1667 bundle2-input-bundle: 4 parts total
1675 transaction abort!
1668 transaction abort!
1676 rollback completed
1669 rollback completed
1677 abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
1670 abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
1678 no rollback information available
1671 no rollback information available
1679 2:fb35475503ef
1672 2:fb35475503ef
1680
1673
1681
1674
1682 Branch acl allow other
1675 Branch acl allow other
1683
1676
1684 $ init_config
1677 $ init_config
1685 $ echo "[acl.allow.branches]" >> $config
1678 $ echo "[acl.allow.branches]" >> $config
1686 $ echo "* = george" >> $config
1679 $ echo "* = george" >> $config
1687 $ do_push astro
1680 $ do_push astro
1688 Pushing as user astro
1681 Pushing as user astro
1689 hgrc = """
1682 hgrc = """
1690 [hooks]
1683 [hooks]
1691 pretxnchangegroup.acl = python:hgext.acl.hook
1684 pretxnchangegroup.acl = python:hgext.acl.hook
1692 [acl]
1685 [acl]
1693 sources = push
1686 sources = push
1694 [extensions]
1687 [extensions]
1695 [acl.allow.branches]
1688 [acl.allow.branches]
1696 * = george
1689 * = george
1697 """
1690 """
1698 pushing to ../b
1691 pushing to ../b
1699 query 1; heads
1692 query 1; heads
1700 searching for changes
1693 searching for changes
1701 all remote heads known locally
1694 all remote heads known locally
1702 listing keys for "phases"
1695 listing keys for "phases"
1703 checking for updated bookmarks
1696 checking for updated bookmarks
1704 listing keys for "bookmarks"
1697 listing keys for "bookmarks"
1705 listing keys for "bookmarks"
1698 listing keys for "bookmarks"
1706 4 changesets found
1699 4 changesets found
1707 list of changesets:
1700 list of changesets:
1708 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1701 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1709 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1702 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1710 911600dab2ae7a9baff75958b84fe606851ce955
1703 911600dab2ae7a9baff75958b84fe606851ce955
1711 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1704 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1712 bundle2-output-bundle: "HG20", 5 parts total
1705 bundle2-output-bundle: "HG20", 5 parts total
1713 bundle2-output-part: "replycaps" 155 bytes payload
1706 bundle2-output-part: "replycaps" 155 bytes payload
1714 bundle2-output-part: "check:heads" streamed payload
1707 bundle2-output-part: "check:heads" streamed payload
1715 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1708 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1716 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1709 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1717 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1710 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1718 bundle2-input-bundle: with-transaction
1711 bundle2-input-bundle: with-transaction
1719 bundle2-input-part: "replycaps" supported
1712 bundle2-input-part: "replycaps" supported
1720 bundle2-input-part: total payload size 155
1713 bundle2-input-part: total payload size 155
1721 bundle2-input-part: "check:heads" supported
1714 bundle2-input-part: "check:heads" supported
1722 bundle2-input-part: total payload size 20
1715 bundle2-input-part: total payload size 20
1723 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1716 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1724 adding changesets
1717 adding changesets
1725 add changeset ef1ea85a6374
1718 add changeset ef1ea85a6374
1726 add changeset f9cafe1212c8
1719 add changeset f9cafe1212c8
1727 add changeset 911600dab2ae
1720 add changeset 911600dab2ae
1728 add changeset e8fc755d4d82
1721 add changeset e8fc755d4d82
1729 adding manifests
1722 adding manifests
1730 adding file changes
1723 adding file changes
1731 adding abc.txt revisions
1724 adding abc.txt revisions
1732 adding foo/Bar/file.txt revisions
1725 adding foo/Bar/file.txt revisions
1733 adding foo/file.txt revisions
1726 adding foo/file.txt revisions
1734 adding quux/file.py revisions
1727 adding quux/file.py revisions
1735 added 4 changesets with 4 changes to 4 files (+1 heads)
1728 added 4 changesets with 4 changes to 4 files (+1 heads)
1736 calling hook pretxnchangegroup.acl: hgext.acl.hook
1729 calling hook pretxnchangegroup.acl: hgext.acl.hook
1737 acl: checking access for user "astro"
1730 acl: checking access for user "astro"
1738 acl: acl.allow.branches enabled, 0 entries for user astro
1731 acl: acl.allow.branches enabled, 0 entries for user astro
1739 acl: acl.deny.branches not enabled
1732 acl: acl.deny.branches not enabled
1740 acl: acl.allow not enabled
1733 acl: acl.allow not enabled
1741 acl: acl.deny not enabled
1734 acl: acl.deny not enabled
1742 error: pretxnchangegroup.acl hook failed: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
1735 error: pretxnchangegroup.acl hook failed: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
1743 bundle2-input-part: total payload size 2101
1736 bundle2-input-part: total payload size 2101
1744 bundle2-input-bundle: 4 parts total
1737 bundle2-input-bundle: 4 parts total
1745 transaction abort!
1738 transaction abort!
1746 rollback completed
1739 rollback completed
1747 abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
1740 abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
1748 no rollback information available
1741 no rollback information available
1749 2:fb35475503ef
1742 2:fb35475503ef
1750
1743
1751 $ do_push george
1744 $ do_push george
1752 Pushing as user george
1745 Pushing as user george
1753 hgrc = """
1746 hgrc = """
1754 [hooks]
1747 [hooks]
1755 pretxnchangegroup.acl = python:hgext.acl.hook
1748 pretxnchangegroup.acl = python:hgext.acl.hook
1756 [acl]
1749 [acl]
1757 sources = push
1750 sources = push
1758 [extensions]
1751 [extensions]
1759 [acl.allow.branches]
1752 [acl.allow.branches]
1760 * = george
1753 * = george
1761 """
1754 """
1762 pushing to ../b
1755 pushing to ../b
1763 query 1; heads
1756 query 1; heads
1764 searching for changes
1757 searching for changes
1765 all remote heads known locally
1758 all remote heads known locally
1766 listing keys for "phases"
1759 listing keys for "phases"
1767 checking for updated bookmarks
1760 checking for updated bookmarks
1768 listing keys for "bookmarks"
1761 listing keys for "bookmarks"
1769 listing keys for "bookmarks"
1762 listing keys for "bookmarks"
1770 4 changesets found
1763 4 changesets found
1771 list of changesets:
1764 list of changesets:
1772 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1765 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1773 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1766 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1774 911600dab2ae7a9baff75958b84fe606851ce955
1767 911600dab2ae7a9baff75958b84fe606851ce955
1775 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1768 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1776 bundle2-output-bundle: "HG20", 5 parts total
1769 bundle2-output-bundle: "HG20", 5 parts total
1777 bundle2-output-part: "replycaps" 155 bytes payload
1770 bundle2-output-part: "replycaps" 155 bytes payload
1778 bundle2-output-part: "check:heads" streamed payload
1771 bundle2-output-part: "check:heads" streamed payload
1779 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1772 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1780 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1773 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1781 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1774 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1782 bundle2-input-bundle: with-transaction
1775 bundle2-input-bundle: with-transaction
1783 bundle2-input-part: "replycaps" supported
1776 bundle2-input-part: "replycaps" supported
1784 bundle2-input-part: total payload size 155
1777 bundle2-input-part: total payload size 155
1785 bundle2-input-part: "check:heads" supported
1778 bundle2-input-part: "check:heads" supported
1786 bundle2-input-part: total payload size 20
1779 bundle2-input-part: total payload size 20
1787 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1780 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1788 adding changesets
1781 adding changesets
1789 add changeset ef1ea85a6374
1782 add changeset ef1ea85a6374
1790 add changeset f9cafe1212c8
1783 add changeset f9cafe1212c8
1791 add changeset 911600dab2ae
1784 add changeset 911600dab2ae
1792 add changeset e8fc755d4d82
1785 add changeset e8fc755d4d82
1793 adding manifests
1786 adding manifests
1794 adding file changes
1787 adding file changes
1795 adding abc.txt revisions
1788 adding abc.txt revisions
1796 adding foo/Bar/file.txt revisions
1789 adding foo/Bar/file.txt revisions
1797 adding foo/file.txt revisions
1790 adding foo/file.txt revisions
1798 adding quux/file.py revisions
1791 adding quux/file.py revisions
1799 added 4 changesets with 4 changes to 4 files (+1 heads)
1792 added 4 changesets with 4 changes to 4 files (+1 heads)
1800 calling hook pretxnchangegroup.acl: hgext.acl.hook
1793 calling hook pretxnchangegroup.acl: hgext.acl.hook
1801 acl: checking access for user "george"
1794 acl: checking access for user "george"
1802 acl: acl.allow.branches enabled, 1 entries for user george
1795 acl: acl.allow.branches enabled, 1 entries for user george
1803 acl: acl.deny.branches not enabled
1796 acl: acl.deny.branches not enabled
1804 acl: acl.allow not enabled
1797 acl: acl.allow not enabled
1805 acl: acl.deny not enabled
1798 acl: acl.deny not enabled
1806 acl: branch access granted: "ef1ea85a6374" on branch "default"
1799 acl: branch access granted: "ef1ea85a6374" on branch "default"
1807 acl: path access granted: "ef1ea85a6374"
1800 acl: path access granted: "ef1ea85a6374"
1808 acl: branch access granted: "f9cafe1212c8" on branch "default"
1801 acl: branch access granted: "f9cafe1212c8" on branch "default"
1809 acl: path access granted: "f9cafe1212c8"
1802 acl: path access granted: "f9cafe1212c8"
1810 acl: branch access granted: "911600dab2ae" on branch "default"
1803 acl: branch access granted: "911600dab2ae" on branch "default"
1811 acl: path access granted: "911600dab2ae"
1804 acl: path access granted: "911600dab2ae"
1812 acl: branch access granted: "e8fc755d4d82" on branch "foobar"
1805 acl: branch access granted: "e8fc755d4d82" on branch "foobar"
1813 acl: path access granted: "e8fc755d4d82"
1806 acl: path access granted: "e8fc755d4d82"
1814 bundle2-input-part: total payload size 2101
1807 bundle2-input-part: total payload size 2101
1815 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1808 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1816 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1809 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1817 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1810 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1818 pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01"
1811 pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01"
1819 bundle2-input-bundle: 4 parts total
1812 bundle2-input-bundle: 4 parts total
1820 updating the branch cache
1813 updating the branch cache
1821 bundle2-output-bundle: "HG20", 3 parts total
1814 bundle2-output-bundle: "HG20", 3 parts total
1822 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1815 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1823 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1816 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1824 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1817 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1825 bundle2-input-bundle: with-transaction
1818 bundle2-input-bundle: with-transaction
1826 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1819 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1827 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1820 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1828 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1821 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1829 bundle2-input-bundle: 2 parts total
1822 bundle2-input-bundle: 2 parts total
1830 listing keys for "phases"
1823 listing keys for "phases"
1831 repository tip rolled back to revision 2 (undo push)
1824 repository tip rolled back to revision 2 (undo push)
1832 2:fb35475503ef
1825 2:fb35475503ef
1833
1826
1834
1827
1835 Branch acl conflicting allow
1828 Branch acl conflicting allow
1836 asterisk ends up applying to all branches and allowing george to
1829 asterisk ends up applying to all branches and allowing george to
1837 push foobar into the remote
1830 push foobar into the remote
1838
1831
1839 $ init_config
1832 $ init_config
1840 $ echo "[acl.allow.branches]" >> $config
1833 $ echo "[acl.allow.branches]" >> $config
1841 $ echo "foobar = astro" >> $config
1834 $ echo "foobar = astro" >> $config
1842 $ echo "* = george" >> $config
1835 $ echo "* = george" >> $config
1843 $ do_push george
1836 $ do_push george
1844 Pushing as user george
1837 Pushing as user george
1845 hgrc = """
1838 hgrc = """
1846 [hooks]
1839 [hooks]
1847 pretxnchangegroup.acl = python:hgext.acl.hook
1840 pretxnchangegroup.acl = python:hgext.acl.hook
1848 [acl]
1841 [acl]
1849 sources = push
1842 sources = push
1850 [extensions]
1843 [extensions]
1851 [acl.allow.branches]
1844 [acl.allow.branches]
1852 foobar = astro
1845 foobar = astro
1853 * = george
1846 * = george
1854 """
1847 """
1855 pushing to ../b
1848 pushing to ../b
1856 query 1; heads
1849 query 1; heads
1857 searching for changes
1850 searching for changes
1858 all remote heads known locally
1851 all remote heads known locally
1859 listing keys for "phases"
1852 listing keys for "phases"
1860 checking for updated bookmarks
1853 checking for updated bookmarks
1861 listing keys for "bookmarks"
1854 listing keys for "bookmarks"
1862 listing keys for "bookmarks"
1855 listing keys for "bookmarks"
1863 4 changesets found
1856 4 changesets found
1864 list of changesets:
1857 list of changesets:
1865 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1858 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1866 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1859 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1867 911600dab2ae7a9baff75958b84fe606851ce955
1860 911600dab2ae7a9baff75958b84fe606851ce955
1868 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1861 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1869 bundle2-output-bundle: "HG20", 5 parts total
1862 bundle2-output-bundle: "HG20", 5 parts total
1870 bundle2-output-part: "replycaps" 155 bytes payload
1863 bundle2-output-part: "replycaps" 155 bytes payload
1871 bundle2-output-part: "check:heads" streamed payload
1864 bundle2-output-part: "check:heads" streamed payload
1872 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1865 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1873 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1866 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1874 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1867 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1875 bundle2-input-bundle: with-transaction
1868 bundle2-input-bundle: with-transaction
1876 bundle2-input-part: "replycaps" supported
1869 bundle2-input-part: "replycaps" supported
1877 bundle2-input-part: total payload size 155
1870 bundle2-input-part: total payload size 155
1878 bundle2-input-part: "check:heads" supported
1871 bundle2-input-part: "check:heads" supported
1879 bundle2-input-part: total payload size 20
1872 bundle2-input-part: total payload size 20
1880 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1873 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1881 adding changesets
1874 adding changesets
1882 add changeset ef1ea85a6374
1875 add changeset ef1ea85a6374
1883 add changeset f9cafe1212c8
1876 add changeset f9cafe1212c8
1884 add changeset 911600dab2ae
1877 add changeset 911600dab2ae
1885 add changeset e8fc755d4d82
1878 add changeset e8fc755d4d82
1886 adding manifests
1879 adding manifests
1887 adding file changes
1880 adding file changes
1888 adding abc.txt revisions
1881 adding abc.txt revisions
1889 adding foo/Bar/file.txt revisions
1882 adding foo/Bar/file.txt revisions
1890 adding foo/file.txt revisions
1883 adding foo/file.txt revisions
1891 adding quux/file.py revisions
1884 adding quux/file.py revisions
1892 added 4 changesets with 4 changes to 4 files (+1 heads)
1885 added 4 changesets with 4 changes to 4 files (+1 heads)
1893 calling hook pretxnchangegroup.acl: hgext.acl.hook
1886 calling hook pretxnchangegroup.acl: hgext.acl.hook
1894 acl: checking access for user "george"
1887 acl: checking access for user "george"
1895 acl: acl.allow.branches enabled, 1 entries for user george
1888 acl: acl.allow.branches enabled, 1 entries for user george
1896 acl: acl.deny.branches not enabled
1889 acl: acl.deny.branches not enabled
1897 acl: acl.allow not enabled
1890 acl: acl.allow not enabled
1898 acl: acl.deny not enabled
1891 acl: acl.deny not enabled
1899 acl: branch access granted: "ef1ea85a6374" on branch "default"
1892 acl: branch access granted: "ef1ea85a6374" on branch "default"
1900 acl: path access granted: "ef1ea85a6374"
1893 acl: path access granted: "ef1ea85a6374"
1901 acl: branch access granted: "f9cafe1212c8" on branch "default"
1894 acl: branch access granted: "f9cafe1212c8" on branch "default"
1902 acl: path access granted: "f9cafe1212c8"
1895 acl: path access granted: "f9cafe1212c8"
1903 acl: branch access granted: "911600dab2ae" on branch "default"
1896 acl: branch access granted: "911600dab2ae" on branch "default"
1904 acl: path access granted: "911600dab2ae"
1897 acl: path access granted: "911600dab2ae"
1905 acl: branch access granted: "e8fc755d4d82" on branch "foobar"
1898 acl: branch access granted: "e8fc755d4d82" on branch "foobar"
1906 acl: path access granted: "e8fc755d4d82"
1899 acl: path access granted: "e8fc755d4d82"
1907 bundle2-input-part: total payload size 2101
1900 bundle2-input-part: total payload size 2101
1908 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1901 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1909 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1902 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
1910 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1903 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
1911 pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01"
1904 pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01"
1912 bundle2-input-bundle: 4 parts total
1905 bundle2-input-bundle: 4 parts total
1913 updating the branch cache
1906 updating the branch cache
1914 bundle2-output-bundle: "HG20", 3 parts total
1907 bundle2-output-bundle: "HG20", 3 parts total
1915 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1908 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
1916 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1909 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1917 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1910 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
1918 bundle2-input-bundle: with-transaction
1911 bundle2-input-bundle: with-transaction
1919 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1912 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
1920 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1913 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1921 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1914 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
1922 bundle2-input-bundle: 2 parts total
1915 bundle2-input-bundle: 2 parts total
1923 listing keys for "phases"
1916 listing keys for "phases"
1924 repository tip rolled back to revision 2 (undo push)
1917 repository tip rolled back to revision 2 (undo push)
1925 2:fb35475503ef
1918 2:fb35475503ef
1926
1919
1927 Branch acl conflicting deny
1920 Branch acl conflicting deny
1928
1921
1929 $ init_config
1922 $ init_config
1930 $ echo "[acl.deny.branches]" >> $config
1923 $ echo "[acl.deny.branches]" >> $config
1931 $ echo "foobar = astro" >> $config
1924 $ echo "foobar = astro" >> $config
1932 $ echo "default = astro" >> $config
1925 $ echo "default = astro" >> $config
1933 $ echo "* = george" >> $config
1926 $ echo "* = george" >> $config
1934 $ do_push george
1927 $ do_push george
1935 Pushing as user george
1928 Pushing as user george
1936 hgrc = """
1929 hgrc = """
1937 [hooks]
1930 [hooks]
1938 pretxnchangegroup.acl = python:hgext.acl.hook
1931 pretxnchangegroup.acl = python:hgext.acl.hook
1939 [acl]
1932 [acl]
1940 sources = push
1933 sources = push
1941 [extensions]
1934 [extensions]
1942 [acl.deny.branches]
1935 [acl.deny.branches]
1943 foobar = astro
1936 foobar = astro
1944 default = astro
1937 default = astro
1945 * = george
1938 * = george
1946 """
1939 """
1947 pushing to ../b
1940 pushing to ../b
1948 query 1; heads
1941 query 1; heads
1949 searching for changes
1942 searching for changes
1950 all remote heads known locally
1943 all remote heads known locally
1951 listing keys for "phases"
1944 listing keys for "phases"
1952 checking for updated bookmarks
1945 checking for updated bookmarks
1953 listing keys for "bookmarks"
1946 listing keys for "bookmarks"
1954 listing keys for "bookmarks"
1947 listing keys for "bookmarks"
1955 4 changesets found
1948 4 changesets found
1956 list of changesets:
1949 list of changesets:
1957 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1950 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
1958 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1951 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
1959 911600dab2ae7a9baff75958b84fe606851ce955
1952 911600dab2ae7a9baff75958b84fe606851ce955
1960 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1953 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
1961 bundle2-output-bundle: "HG20", 5 parts total
1954 bundle2-output-bundle: "HG20", 5 parts total
1962 bundle2-output-part: "replycaps" 155 bytes payload
1955 bundle2-output-part: "replycaps" 155 bytes payload
1963 bundle2-output-part: "check:heads" streamed payload
1956 bundle2-output-part: "check:heads" streamed payload
1964 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1957 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
1965 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1958 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1966 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1959 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
1967 bundle2-input-bundle: with-transaction
1960 bundle2-input-bundle: with-transaction
1968 bundle2-input-part: "replycaps" supported
1961 bundle2-input-part: "replycaps" supported
1969 bundle2-input-part: total payload size 155
1962 bundle2-input-part: total payload size 155
1970 bundle2-input-part: "check:heads" supported
1963 bundle2-input-part: "check:heads" supported
1971 bundle2-input-part: total payload size 20
1964 bundle2-input-part: total payload size 20
1972 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1965 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
1973 adding changesets
1966 adding changesets
1974 add changeset ef1ea85a6374
1967 add changeset ef1ea85a6374
1975 add changeset f9cafe1212c8
1968 add changeset f9cafe1212c8
1976 add changeset 911600dab2ae
1969 add changeset 911600dab2ae
1977 add changeset e8fc755d4d82
1970 add changeset e8fc755d4d82
1978 adding manifests
1971 adding manifests
1979 adding file changes
1972 adding file changes
1980 adding abc.txt revisions
1973 adding abc.txt revisions
1981 adding foo/Bar/file.txt revisions
1974 adding foo/Bar/file.txt revisions
1982 adding foo/file.txt revisions
1975 adding foo/file.txt revisions
1983 adding quux/file.py revisions
1976 adding quux/file.py revisions
1984 added 4 changesets with 4 changes to 4 files (+1 heads)
1977 added 4 changesets with 4 changes to 4 files (+1 heads)
1985 calling hook pretxnchangegroup.acl: hgext.acl.hook
1978 calling hook pretxnchangegroup.acl: hgext.acl.hook
1986 acl: checking access for user "george"
1979 acl: checking access for user "george"
1987 acl: acl.allow.branches not enabled
1980 acl: acl.allow.branches not enabled
1988 acl: acl.deny.branches enabled, 1 entries for user george
1981 acl: acl.deny.branches enabled, 1 entries for user george
1989 acl: acl.allow not enabled
1982 acl: acl.allow not enabled
1990 acl: acl.deny not enabled
1983 acl: acl.deny not enabled
1991 error: pretxnchangegroup.acl hook failed: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
1984 error: pretxnchangegroup.acl hook failed: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
1992 bundle2-input-part: total payload size 2101
1985 bundle2-input-part: total payload size 2101
1993 bundle2-input-bundle: 4 parts total
1986 bundle2-input-bundle: 4 parts total
1994 transaction abort!
1987 transaction abort!
1995 rollback completed
1988 rollback completed
1996 abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
1989 abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
1997 no rollback information available
1990 no rollback information available
1998 2:fb35475503ef
1991 2:fb35475503ef
1999
1992
2000 User 'astro' must not be denied
1993 User 'astro' must not be denied
2001
1994
2002 $ init_config
1995 $ init_config
2003 $ echo "[acl.deny.branches]" >> $config
1996 $ echo "[acl.deny.branches]" >> $config
2004 $ echo "default = !astro" >> $config
1997 $ echo "default = !astro" >> $config
2005 $ do_push astro
1998 $ do_push astro
2006 Pushing as user astro
1999 Pushing as user astro
2007 hgrc = """
2000 hgrc = """
2008 [hooks]
2001 [hooks]
2009 pretxnchangegroup.acl = python:hgext.acl.hook
2002 pretxnchangegroup.acl = python:hgext.acl.hook
2010 [acl]
2003 [acl]
2011 sources = push
2004 sources = push
2012 [extensions]
2005 [extensions]
2013 [acl.deny.branches]
2006 [acl.deny.branches]
2014 default = !astro
2007 default = !astro
2015 """
2008 """
2016 pushing to ../b
2009 pushing to ../b
2017 query 1; heads
2010 query 1; heads
2018 searching for changes
2011 searching for changes
2019 all remote heads known locally
2012 all remote heads known locally
2020 listing keys for "phases"
2013 listing keys for "phases"
2021 checking for updated bookmarks
2014 checking for updated bookmarks
2022 listing keys for "bookmarks"
2015 listing keys for "bookmarks"
2023 listing keys for "bookmarks"
2016 listing keys for "bookmarks"
2024 4 changesets found
2017 4 changesets found
2025 list of changesets:
2018 list of changesets:
2026 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
2019 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
2027 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
2020 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
2028 911600dab2ae7a9baff75958b84fe606851ce955
2021 911600dab2ae7a9baff75958b84fe606851ce955
2029 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
2022 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
2030 bundle2-output-bundle: "HG20", 5 parts total
2023 bundle2-output-bundle: "HG20", 5 parts total
2031 bundle2-output-part: "replycaps" 155 bytes payload
2024 bundle2-output-part: "replycaps" 155 bytes payload
2032 bundle2-output-part: "check:heads" streamed payload
2025 bundle2-output-part: "check:heads" streamed payload
2033 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
2026 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
2034 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
2027 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
2035 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
2028 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
2036 bundle2-input-bundle: with-transaction
2029 bundle2-input-bundle: with-transaction
2037 bundle2-input-part: "replycaps" supported
2030 bundle2-input-part: "replycaps" supported
2038 bundle2-input-part: total payload size 155
2031 bundle2-input-part: total payload size 155
2039 bundle2-input-part: "check:heads" supported
2032 bundle2-input-part: "check:heads" supported
2040 bundle2-input-part: total payload size 20
2033 bundle2-input-part: total payload size 20
2041 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
2034 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
2042 adding changesets
2035 adding changesets
2043 add changeset ef1ea85a6374
2036 add changeset ef1ea85a6374
2044 add changeset f9cafe1212c8
2037 add changeset f9cafe1212c8
2045 add changeset 911600dab2ae
2038 add changeset 911600dab2ae
2046 add changeset e8fc755d4d82
2039 add changeset e8fc755d4d82
2047 adding manifests
2040 adding manifests
2048 adding file changes
2041 adding file changes
2049 adding abc.txt revisions
2042 adding abc.txt revisions
2050 adding foo/Bar/file.txt revisions
2043 adding foo/Bar/file.txt revisions
2051 adding foo/file.txt revisions
2044 adding foo/file.txt revisions
2052 adding quux/file.py revisions
2045 adding quux/file.py revisions
2053 added 4 changesets with 4 changes to 4 files (+1 heads)
2046 added 4 changesets with 4 changes to 4 files (+1 heads)
2054 calling hook pretxnchangegroup.acl: hgext.acl.hook
2047 calling hook pretxnchangegroup.acl: hgext.acl.hook
2055 acl: checking access for user "astro"
2048 acl: checking access for user "astro"
2056 acl: acl.allow.branches not enabled
2049 acl: acl.allow.branches not enabled
2057 acl: acl.deny.branches enabled, 0 entries for user astro
2050 acl: acl.deny.branches enabled, 0 entries for user astro
2058 acl: acl.allow not enabled
2051 acl: acl.allow not enabled
2059 acl: acl.deny not enabled
2052 acl: acl.deny not enabled
2060 acl: branch access granted: "ef1ea85a6374" on branch "default"
2053 acl: branch access granted: "ef1ea85a6374" on branch "default"
2061 acl: path access granted: "ef1ea85a6374"
2054 acl: path access granted: "ef1ea85a6374"
2062 acl: branch access granted: "f9cafe1212c8" on branch "default"
2055 acl: branch access granted: "f9cafe1212c8" on branch "default"
2063 acl: path access granted: "f9cafe1212c8"
2056 acl: path access granted: "f9cafe1212c8"
2064 acl: branch access granted: "911600dab2ae" on branch "default"
2057 acl: branch access granted: "911600dab2ae" on branch "default"
2065 acl: path access granted: "911600dab2ae"
2058 acl: path access granted: "911600dab2ae"
2066 acl: branch access granted: "e8fc755d4d82" on branch "foobar"
2059 acl: branch access granted: "e8fc755d4d82" on branch "foobar"
2067 acl: path access granted: "e8fc755d4d82"
2060 acl: path access granted: "e8fc755d4d82"
2068 bundle2-input-part: total payload size 2101
2061 bundle2-input-part: total payload size 2101
2069 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
2062 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
2070 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
2063 pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955"
2071 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
2064 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
2072 pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01"
2065 pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01"
2073 bundle2-input-bundle: 4 parts total
2066 bundle2-input-bundle: 4 parts total
2074 updating the branch cache
2067 updating the branch cache
2075 bundle2-output-bundle: "HG20", 3 parts total
2068 bundle2-output-bundle: "HG20", 3 parts total
2076 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
2069 bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload
2077 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
2070 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
2078 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
2071 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
2079 bundle2-input-bundle: with-transaction
2072 bundle2-input-bundle: with-transaction
2080 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
2073 bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
2081 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
2074 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
2082 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
2075 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
2083 bundle2-input-bundle: 2 parts total
2076 bundle2-input-bundle: 2 parts total
2084 listing keys for "phases"
2077 listing keys for "phases"
2085 repository tip rolled back to revision 2 (undo push)
2078 repository tip rolled back to revision 2 (undo push)
2086 2:fb35475503ef
2079 2:fb35475503ef
2087
2080
2088
2081
2089 Non-astro users must be denied
2082 Non-astro users must be denied
2090
2083
2091 $ do_push george
2084 $ do_push george
2092 Pushing as user george
2085 Pushing as user george
2093 hgrc = """
2086 hgrc = """
2094 [hooks]
2087 [hooks]
2095 pretxnchangegroup.acl = python:hgext.acl.hook
2088 pretxnchangegroup.acl = python:hgext.acl.hook
2096 [acl]
2089 [acl]
2097 sources = push
2090 sources = push
2098 [extensions]
2091 [extensions]
2099 [acl.deny.branches]
2092 [acl.deny.branches]
2100 default = !astro
2093 default = !astro
2101 """
2094 """
2102 pushing to ../b
2095 pushing to ../b
2103 query 1; heads
2096 query 1; heads
2104 searching for changes
2097 searching for changes
2105 all remote heads known locally
2098 all remote heads known locally
2106 listing keys for "phases"
2099 listing keys for "phases"
2107 checking for updated bookmarks
2100 checking for updated bookmarks
2108 listing keys for "bookmarks"
2101 listing keys for "bookmarks"
2109 listing keys for "bookmarks"
2102 listing keys for "bookmarks"
2110 4 changesets found
2103 4 changesets found
2111 list of changesets:
2104 list of changesets:
2112 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
2105 ef1ea85a6374b77d6da9dcda9541f498f2d17df7
2113 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
2106 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
2114 911600dab2ae7a9baff75958b84fe606851ce955
2107 911600dab2ae7a9baff75958b84fe606851ce955
2115 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
2108 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
2116 bundle2-output-bundle: "HG20", 5 parts total
2109 bundle2-output-bundle: "HG20", 5 parts total
2117 bundle2-output-part: "replycaps" 155 bytes payload
2110 bundle2-output-part: "replycaps" 155 bytes payload
2118 bundle2-output-part: "check:heads" streamed payload
2111 bundle2-output-part: "check:heads" streamed payload
2119 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
2112 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
2120 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
2113 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
2121 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
2114 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
2122 bundle2-input-bundle: with-transaction
2115 bundle2-input-bundle: with-transaction
2123 bundle2-input-part: "replycaps" supported
2116 bundle2-input-part: "replycaps" supported
2124 bundle2-input-part: total payload size 155
2117 bundle2-input-part: total payload size 155
2125 bundle2-input-part: "check:heads" supported
2118 bundle2-input-part: "check:heads" supported
2126 bundle2-input-part: total payload size 20
2119 bundle2-input-part: total payload size 20
2127 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
2120 bundle2-input-part: "changegroup" (params: 1 mandatory) supported
2128 adding changesets
2121 adding changesets
2129 add changeset ef1ea85a6374
2122 add changeset ef1ea85a6374
2130 add changeset f9cafe1212c8
2123 add changeset f9cafe1212c8
2131 add changeset 911600dab2ae
2124 add changeset 911600dab2ae
2132 add changeset e8fc755d4d82
2125 add changeset e8fc755d4d82
2133 adding manifests
2126 adding manifests
2134 adding file changes
2127 adding file changes
2135 adding abc.txt revisions
2128 adding abc.txt revisions
2136 adding foo/Bar/file.txt revisions
2129 adding foo/Bar/file.txt revisions
2137 adding foo/file.txt revisions
2130 adding foo/file.txt revisions
2138 adding quux/file.py revisions
2131 adding quux/file.py revisions
2139 added 4 changesets with 4 changes to 4 files (+1 heads)
2132 added 4 changesets with 4 changes to 4 files (+1 heads)
2140 calling hook pretxnchangegroup.acl: hgext.acl.hook
2133 calling hook pretxnchangegroup.acl: hgext.acl.hook
2141 acl: checking access for user "george"
2134 acl: checking access for user "george"
2142 acl: acl.allow.branches not enabled
2135 acl: acl.allow.branches not enabled
2143 acl: acl.deny.branches enabled, 1 entries for user george
2136 acl: acl.deny.branches enabled, 1 entries for user george
2144 acl: acl.allow not enabled
2137 acl: acl.allow not enabled
2145 acl: acl.deny not enabled
2138 acl: acl.deny not enabled
2146 error: pretxnchangegroup.acl hook failed: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
2139 error: pretxnchangegroup.acl hook failed: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
2147 bundle2-input-part: total payload size 2101
2140 bundle2-input-part: total payload size 2101
2148 bundle2-input-bundle: 4 parts total
2141 bundle2-input-bundle: 4 parts total
2149 transaction abort!
2142 transaction abort!
2150 rollback completed
2143 rollback completed
2151 abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
2144 abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
2152 no rollback information available
2145 no rollback information available
2153 2:fb35475503ef
2146 2:fb35475503ef
2154
2147
2155
2148
General Comments 0
You need to be logged in to leave comments. Login now