summaryrefslogtreecommitdiff
path: root/tests/test-permissions.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-permissions.t')
-rw-r--r--tests/test-permissions.t72
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/test-permissions.t b/tests/test-permissions.t
new file mode 100644
index 0000000..88f0637
--- /dev/null
+++ b/tests/test-permissions.t
@@ -0,0 +1,72 @@
+ $ "$TESTDIR/hghave" unix-permissions || exit 80
+
+ $ hg init t
+ $ cd t
+
+ $ echo foo > a
+ $ hg add a
+
+ $ hg commit -m "1"
+
+ $ hg verify
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 1 files, 1 changesets, 1 total revisions
+
+ $ chmod -r .hg/store/data/a.i
+
+ $ hg verify
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ abort: Permission denied: $TESTTMP/t/.hg/store/data/a.i
+ [255]
+
+ $ chmod +r .hg/store/data/a.i
+
+ $ hg verify
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 1 files, 1 changesets, 1 total revisions
+
+ $ chmod -w .hg/store/data/a.i
+
+ $ echo barber > a
+ $ hg commit -m "2"
+ trouble committing a!
+ abort: Permission denied: $TESTTMP/t/.hg/store/data/a.i
+ [255]
+
+ $ chmod -w .
+
+ $ hg diff --nodates
+ diff -r 2a18120dc1c9 a
+ --- a/a
+ +++ b/a
+ @@ -1,1 +1,1 @@
+ -foo
+ +barber
+
+ $ chmod +w .
+
+ $ chmod +w .hg/store/data/a.i
+ $ mkdir dir
+ $ touch dir/a
+ $ hg status
+ M a
+ ? dir/a
+ $ chmod -rx dir
+ $ hg status
+ dir: Permission denied
+ M a
+
+Reenable perm to allow deletion:
+
+ $ chmod +rx dir
+
+ $ cd ..