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