##// END OF EJS Templates
py3: use '%d' for integers instead of '%s'...
py3: use '%d' for integers instead of '%s' Differential Revision: https://phab.mercurial-scm.org/D3277

File last commit:

r37434:7542e97c default
r37597:ce566e0f default
Show More
test-inherit-mode.t
172 lines | 4.8 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 > from __future__ import absolute_import, print_function
> 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 > from __future__ import absolute_import, print_function
> 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
$ chmod 0770 .hg/store
before commit
store can be written by the group, other files cannot
store is setgid
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ $PYTHON ../printmodes.py .
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00700 ./.hg/
00600 ./.hg/00changelog.i
00600 ./.hg/requires
00770 ./.hg/store/
$ 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
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ $PYTHON ../printmodes.py .
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00700 ./.hg/
00600 ./.hg/00changelog.i
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
Mads Kiilerich
branchmap: use revbranchcache when updating branch map...
r23786 00660 ./.hg/cache/rbc-names-v1
00660 ./.hg/cache/rbc-revs-v1
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/
00660 ./.hg/store/00changelog.i
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
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
Pierre-Yves David
phases: add rollback support
r15455 00660 ./.hg/store/undo.phaseroots
Laurent Charignon
localrepo: put bookmark move following commit in one transaction...
r26998 00660 ./.hg/undo.backup.dirstate
Alexander Solovyov
fix bookmarks rollback behavior...
r14266 00660 ./.hg/undo.bookmarks
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ./.hg/undo.branch
00660 ./.hg/undo.desc
00660 ./.hg/undo.dirstate
00700 ./dir/
00600 ./dir/bar
00600 ./foo
$ umask 007
$ hg init ../push
before push
group can write everything
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ $PYTHON ../printmodes.py ../push
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00770 ../push/.hg/
00660 ../push/.hg/00changelog.i
00660 ../push/.hg/requires
00770 ../push/.hg/store/
$ umask 077
$ hg -q push ../push
after push
group can still write everything
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ $PYTHON ../printmodes.py ../push
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00770 ../push/.hg/
00660 ../push/.hg/00changelog.i
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
Mateusz Kwapich
localrepo: use dirstate savebackup instead of handling dirstate file manually...
r29191 00660 ../push/.hg/dirstate
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ../push/.hg/requires
00770 ../push/.hg/store/
00660 ../push/.hg/store/00changelog.i
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 !)
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
Pierre-Yves David
phases: add rollback support
r15455 00660 ../push/.hg/store/undo.phaseroots
Alexander Solovyov
fix bookmarks rollback behavior...
r14266 00660 ../push/.hg/undo.bookmarks
Nicolas Dumazet
tests: unify test-inherit-mode
r12096 00660 ../push/.hg/undo.branch
00660 ../push/.hg/undo.desc
00660 ../push/.hg/undo.dirstate
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'
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ 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