Mercurial > hg
annotate tests/test-permissions.t @ 41163:0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
There was a divergence in behavior here between obsolete and strip based
amending. I first noticed the abort when testing outside of the test harness,
but then had trouble recreating it here after reverting the code changes. It
turns out, strip based amend was successfully amending the public commit after
it was posted! It looks like the protection is in the `commit --amend` command,
not in the underlying code that it calls.
I considered doing a preflight check and aborting. But the locks are only
acquired at the end, if amending, and this is too large a section of code to be
wrapped in a maybe-it's-held-or-not context manager for my tastes.
Additionally, some people do post-push reviews, and amending is the default
behavior, so they shouldn't see a misleading error message.
The lack of a 'Differential Revision' entry in the commit message breaks a
{phabreview} test, so it had to be partially conditionalized.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 05 Jan 2019 15:20:33 -0500 |
parents | f1186c292d03 |
children | b6673e9bdcf6 |
rev | line source |
---|---|
37416
7542e97c7867
tests: conditionalize tests for various repo features
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33428
diff
changeset
|
1 #require unix-permissions no-root reporevlogstore |
15443
a1914d214579
tests: use 'hghave unix-permissions' for tests that really use chmod
Mads Kiilerich <mads@kiilerich.com>
parents:
12640
diff
changeset
|
2 |
12279 | 3 $ hg init t |
4 $ cd t | |
5 | |
6 $ echo foo > a | |
7 $ hg add a | |
8 | |
9 $ hg commit -m "1" | |
10 | |
11 $ hg verify | |
12 checking changesets | |
13 checking manifests | |
14 crosschecking files in changesets and manifests | |
15 checking files | |
39489
f1186c292d03
verify: make output less confusing (issue5924)
Meirambek Omyrzak <meirambek77@gmail.com>
parents:
37416
diff
changeset
|
16 checked 1 changesets with 1 changes to 1 files |
12279 | 17 |
18 $ chmod -r .hg/store/data/a.i | |
19 | |
12365
22f3353bcc36
tests: cleanup exit code handling in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12279
diff
changeset
|
20 $ hg verify |
12279 | 21 checking changesets |
22 checking manifests | |
23 crosschecking files in changesets and manifests | |
24 checking files | |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12376
diff
changeset
|
25 abort: Permission denied: $TESTTMP/t/.hg/store/data/a.i |
12365
22f3353bcc36
tests: cleanup exit code handling in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12279
diff
changeset
|
26 [255] |
12279 | 27 |
28 $ chmod +r .hg/store/data/a.i | |
29 | |
12365
22f3353bcc36
tests: cleanup exit code handling in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12279
diff
changeset
|
30 $ hg verify |
12279 | 31 checking changesets |
32 checking manifests | |
33 crosschecking files in changesets and manifests | |
34 checking files | |
39489
f1186c292d03
verify: make output less confusing (issue5924)
Meirambek Omyrzak <meirambek77@gmail.com>
parents:
37416
diff
changeset
|
35 checked 1 changesets with 1 changes to 1 files |
1497 | 36 |
12279 | 37 $ chmod -w .hg/store/data/a.i |
38 | |
39 $ echo barber > a | |
12365
22f3353bcc36
tests: cleanup exit code handling in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12279
diff
changeset
|
40 $ hg commit -m "2" |
12279 | 41 trouble committing a! |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12376
diff
changeset
|
42 abort: Permission denied: $TESTTMP/t/.hg/store/data/a.i |
12365
22f3353bcc36
tests: cleanup exit code handling in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12279
diff
changeset
|
43 [255] |
12279 | 44 |
45 $ chmod -w . | |
46 | |
47 $ hg diff --nodates | |
48 diff -r 2a18120dc1c9 a | |
49 --- a/a | |
50 +++ b/a | |
51 @@ -1,1 +1,1 @@ | |
52 -foo | |
53 +barber | |
7099
6f750e76fb46
dirstate.walk: skip unreadable directories (issue1213)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5519
diff
changeset
|
54 |
12279 | 55 $ chmod +w . |
56 | |
57 $ chmod +w .hg/store/data/a.i | |
58 $ mkdir dir | |
59 $ touch dir/a | |
60 $ hg status | |
61 M a | |
62 ? dir/a | |
63 $ chmod -rx dir | |
33428
435f63d12475
tests: avoid tests related to directory permission if running with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22047
diff
changeset
|
64 |
435f63d12475
tests: avoid tests related to directory permission if running with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22047
diff
changeset
|
65 #if no-fsmonitor |
435f63d12475
tests: avoid tests related to directory permission if running with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22047
diff
changeset
|
66 |
435f63d12475
tests: avoid tests related to directory permission if running with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22047
diff
changeset
|
67 (fsmonitor makes "hg status" avoid accessing to "dir") |
435f63d12475
tests: avoid tests related to directory permission if running with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22047
diff
changeset
|
68 |
12279 | 69 $ hg status |
70 dir: Permission denied | |
71 M a | |
72 | |
33428
435f63d12475
tests: avoid tests related to directory permission if running with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22047
diff
changeset
|
73 #endif |
435f63d12475
tests: avoid tests related to directory permission if running with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22047
diff
changeset
|
74 |
12279 | 75 Reenable perm to allow deletion: |
76 | |
77 $ chmod +rx dir | |
78 | |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15443
diff
changeset
|
79 $ cd .. |