tests/test-sqlite3-permissions.t
author Joerg Sonnenberger <joerg@bec.de>
Sun, 03 May 2020 01:01:19 +0200
changeset 5332 2570d2d4a268
permissions -rw-r--r--
caches: preserve permissions of top-level .hg When using hg on a shared filesystem on UNIX, cache files normally inherit the permissions of the .hg directory. This is most commonly used to ensure everything is writable by all users. The sqlite3 cache files don't have a way to directly set the permission, so check if a special mode is necessary and try to apply them to newly created database files.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5332
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     1
#require unix-permissions
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     2
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     3
Test that sqlite3 cache files inherit the permissions of the .hg
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     4
directory like other cache files.
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     5
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     6
  $ . $TESTDIR/testlib/common.sh
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     7
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     8
  $ cat << EOF >> $HGRCPATH
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     9
  > [extensions]
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    10
  > evolve =
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    11
  > EOF
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    12
  $ hg init test
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    13
  $ cd test
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    14
  $ chmod 700 .hg
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    15
  $ hg debugupdatecache
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    16
  $ ls -l .hg/cache/evoext_*.sqlite
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    17
  -rw------- * .hg/cache/evoext_obshashrange_v2.sqlite (glob)
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    18
  -rw------- * .hg/cache/evoext_stablerange_v2.sqlite (glob)
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    19
  $ rm -r .hg/cache
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    20
  $ chmod 770 .hg
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    21
  $ hg debugupdatecache
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    22
  $ ls -l .hg/cache/evoext_*.sqlite
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    23
  -rw-rw---- * .hg/cache/evoext_obshashrange_v2.sqlite (glob)
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    24
  -rw-rw---- * .hg/cache/evoext_stablerange_v2.sqlite (glob)
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    25
  $ rm -r .hg/cache
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    26
  $ chmod 774 .hg
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    27
  $ hg debugupdatecache
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    28
  $ ls -l .hg/cache/evoext_*.sqlite
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    29
  -rw-rw-r-- * .hg/cache/evoext_obshashrange_v2.sqlite (glob)
2570d2d4a268 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    30
  -rw-rw-r-- * .hg/cache/evoext_stablerange_v2.sqlite (glob)