##// END OF EJS Templates
tests: use pyflakes as a tool, not a python module...
tests: use pyflakes as a tool, not a python module The usage of pyflakes as a Python module was introduced in e397c6d74652, to work around issue between Python 2 and Python 3. This issues are long behind us now and we can get beck to using pyflakes as a tool, giving us more flexibility about how we install it. The `hghave` requirements is modified to check that we have a tool available, instead of a python module.

File last commit:

r52799:0f26ee69 default
r52956:43602c67 default
Show More
test-inherit-mode.t
186 lines | 5.3 KiB | text/troff | Tads3Lexer
/ tests / test-inherit-mode.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require unix-permissions
Nicolas Dumazet
tests: unify test-inherit-mode
r12096
Matt Mackall
tests: replace exit 80 with #require
r22046 test that new files created in .hg inherit the permissions from .hg/store
Nicolas Dumazet
tests: unify test-inherit-mode
r12096
$ mkdir dir
just in case somebody has a strange $TMPDIR
$ chmod g-s dir
$ cd dir
$ cat >printmodes.py <<EOF
Augie Fackler
tests: update test-inherit-mode to pass our import checker
r33991 > import os
> import sys
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 >
> allnames = []
> isdir = {}
> for root, dirs, files in os.walk(sys.argv[1]):
> for d in dirs:
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > name = os.path.join(root, d)
> isdir[name] = 1
> allnames.append(name)
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 > for f in files:
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > name = os.path.join(root, f)
> allnames.append(name)
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 > allnames.sort()
> for name in allnames:
> suffix = name in isdir and '/' or ''
Augie Fackler
tests: update test-inherit-mode to pass our import checker
r33991 > print('%05o %s%s' % (os.lstat(name).st_mode & 0o7777, name, suffix))
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 > EOF
$ cat >mode.py <<EOF
Augie Fackler
tests: update test-inherit-mode to pass our import checker
r33991 > import os
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 > import sys
Augie Fackler
tests: clean up many print statements to be print functions instead...
r33687 > print('%05o' % os.lstat(sys.argv[1]).st_mode)
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 > EOF
$ umask 077
$ hg init repo
$ cd repo
Boris Feld
cache: create `wcache` directory at init time...
r40825 $ chmod 0770 .hg/store .hg/cache .hg/wcache
Nicolas Dumazet
tests: unify test-inherit-mode
r12096
before commit
store can be written by the group, other files cannot
store is setgid
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" ../printmodes.py .
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00700 ./.hg/
00600 ./.hg/00changelog.i
Boris Feld
cache: create `cache` directory at init time...
r40824 00770 ./.hg/cache/
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00600 ./.hg/requires
00770 ./.hg/store/
share-safe: enable by default (BC)...
r49515 00600 ./.hg/store/requires
Boris Feld
cache: create `wcache` directory at init time...
r40825 00770 ./.hg/wcache/
Nicolas Dumazet
tests: unify test-inherit-mode
r12096
$ mkdir dir
$ touch foo dir/bar
$ hg ci -qAm 'add files'
after commit
working dir files can only be written by the owner
files created in .hg can be written by the group
(in particular, store/**, dirstate, branch cache file, undo files)
new directories are setgid
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" ../printmodes.py .
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00700 ./.hg/
00600 ./.hg/00changelog.i
transaction: use the standard transaction mechanism to backup branch...
r51090 00660 ./.hg/branch
Mads Kiilerich
localrepo: update branchcache in a more reliable way...
r15886 00770 ./.hg/cache/
Brodie Rao
branchmap: cache open/closed branch head information...
r20185 00660 ./.hg/cache/branch2-served
rev-branch-cache: increment the version to "v2"...
r52799 00660 ./.hg/cache/rbc-names-v2
00660 ./.hg/cache/rbc-revs-v2
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ./.hg/dirstate
FUJIWARA Katsunori
tests: add extra output for fsmonitor at checking under .hg
r33427 00660 ./.hg/fsmonitor.state (fsmonitor !)
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ./.hg/last-message.txt
00600 ./.hg/requires
00770 ./.hg/store/
changelog: never inline changelog...
r52074 00660 ./.hg/store/00changelog-150e1cfc.nd (rust !)
00660 ./.hg/store/00changelog.d
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ./.hg/store/00changelog.i
changelog: never inline changelog...
r52074 00660 ./.hg/store/00changelog.n (rust !)
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ./.hg/store/00manifest.i
00770 ./.hg/store/data/
00770 ./.hg/store/data/dir/
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434 00660 ./.hg/store/data/dir/bar.i (reporevlogstore !)
00660 ./.hg/store/data/foo.i (reporevlogstore !)
00770 ./.hg/store/data/dir/bar/ (reposimplestore !)
00660 ./.hg/store/data/dir/bar/b80de5d138758541c5f05265ad144ab9fa86d1db (reposimplestore !)
00660 ./.hg/store/data/dir/bar/index (reposimplestore !)
00770 ./.hg/store/data/foo/ (reposimplestore !)
00660 ./.hg/store/data/foo/b80de5d138758541c5f05265ad144ab9fa86d1db (reposimplestore !)
00660 ./.hg/store/data/foo/index (reposimplestore !)
Gregory Szorc
simplestore: use a custom store for the simple store repo...
r37433 00660 ./.hg/store/fncache (repofncache !)
Pierre-Yves David
phases: set new commit in 1-phase
r15483 00660 ./.hg/store/phaseroots
share-safe: enable by default (BC)...
r49515 00600 ./.hg/store/requires
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ./.hg/store/undo
Pierre-Yves David
transaction: include backup file in the "undo" transaction...
r23904 00660 ./.hg/store/undo.backupfiles
transaction: use a ".bck" extension for all backup file...
r51358 00660 ./.hg/undo.backup.branch.bck
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ./.hg/undo.desc
Boris Feld
check-exec: write file in 'wcache' instead of 'cache'...
r40823 00770 ./.hg/wcache/
00711 ./.hg/wcache/checkisexec
Augie Fackler
tests: stabilize test-inherit-mode.t on FreeBSD and macOS again...
r40866 007.. ./.hg/wcache/checklink (re)
Boris Feld
check-exec: write file in 'wcache' instead of 'cache'...
r40823 00600 ./.hg/wcache/checklink-target
manifestcache: use `wcache` directory for manifest cache...
r42131 00660 ./.hg/wcache/manifestfulltextcache (reporevlogstore !)
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00700 ./dir/
00600 ./dir/bar
00600 ./foo
$ umask 007
$ hg init ../push
before push
group can write everything
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" ../printmodes.py ../push
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00770 ../push/.hg/
00660 ../push/.hg/00changelog.i
Boris Feld
cache: create `cache` directory at init time...
r40824 00770 ../push/.hg/cache/
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ../push/.hg/requires
00770 ../push/.hg/store/
share-safe: enable by default (BC)...
r49515 00660 ../push/.hg/store/requires
Boris Feld
cache: create `wcache` directory at init time...
r40825 00770 ../push/.hg/wcache/
Nicolas Dumazet
tests: unify test-inherit-mode
r12096
$ umask 077
$ hg -q push ../push
after push
group can still write everything
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" ../printmodes.py ../push
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00770 ../push/.hg/
00660 ../push/.hg/00changelog.i
transaction: use the standard transaction mechanism to backup branch...
r51090 00660 ../push/.hg/branch
jfh
move tags.cache and branchheads.cache to a collected cache folder .hg/cache/...
r13272 00770 ../push/.hg/cache/
Brodie Rao
branchmap: cache open/closed branch head information...
r20185 00660 ../push/.hg/cache/branch2-base
rev-branch-cache: increment the version to "v2"...
r52799 00660 ../push/.hg/cache/rbc-names-v2
00660 ../push/.hg/cache/rbc-revs-v2
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ../push/.hg/requires
00770 ../push/.hg/store/
changelog: never inline changelog...
r52074 00660 ../push/.hg/store/00changelog-b870a51b.nd (rust !)
00660 ../push/.hg/store/00changelog.d
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ../push/.hg/store/00changelog.i
changelog: never inline changelog...
r52074 00660 ../push/.hg/store/00changelog.n (rust !)
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ../push/.hg/store/00manifest.i
00770 ../push/.hg/store/data/
00770 ../push/.hg/store/data/dir/
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434 00660 ../push/.hg/store/data/dir/bar.i (reporevlogstore !)
00660 ../push/.hg/store/data/foo.i (reporevlogstore !)
00770 ../push/.hg/store/data/dir/bar/ (reposimplestore !)
00660 ../push/.hg/store/data/dir/bar/b80de5d138758541c5f05265ad144ab9fa86d1db (reposimplestore !)
00660 ../push/.hg/store/data/dir/bar/index (reposimplestore !)
00770 ../push/.hg/store/data/foo/ (reposimplestore !)
00660 ../push/.hg/store/data/foo/b80de5d138758541c5f05265ad144ab9fa86d1db (reposimplestore !)
00660 ../push/.hg/store/data/foo/index (reposimplestore !)
Gregory Szorc
simplestore: use a custom store for the simple store repo...
r37433 00660 ../push/.hg/store/fncache (repofncache !)
share-safe: enable by default (BC)...
r49515 00660 ../push/.hg/store/requires
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ../push/.hg/store/undo
Pierre-Yves David
transaction: include backup file in the "undo" transaction...
r23904 00660 ../push/.hg/store/undo.backupfiles
transaction: use a ".bck" extension for all backup file...
r51358 00660 ../push/.hg/undo.backup.branch.bck
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ../push/.hg/undo.desc
Boris Feld
cache: create `wcache` directory at init time...
r40825 00770 ../push/.hg/wcache/
Nicolas Dumazet
tests: unify test-inherit-mode
r12096
Test that we don't lose the setgid bit when we call chmod.
Not all systems support setgid directories (e.g. HFS+), so
just check that directories have the same mode.
$ cd ..
$ hg init setgid
$ cd setgid
$ chmod g+rwx .hg/store
Javi Merino
tests: ignore the return code of chmod in test-inherit-mode...
r16225 $ chmod g+s .hg/store 2> /dev/null || true
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 $ mkdir dir
$ touch dir/file
$ hg ci -qAm 'add dir/file'
Matt Harbison
tests: quote PYTHON usage...
r39743 $ storemode=`"$PYTHON" ../mode.py .hg/store`
$ dirmode=`"$PYTHON" ../mode.py .hg/store/data/dir`
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 $ if [ "$storemode" != "$dirmode" ]; then
> echo "$storemode != $dirmode"
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 > fi
$ cd ..
$ cd .. # g-s dir