##// END OF EJS Templates
patch: remove applydiff() useless updatedir and rejmerge arguments
patch: remove applydiff() useless updatedir and rejmerge arguments

File last commit:

r6301:68cfd7d2 default
r7147:94cf0d1f default
Show More
test-inherit-mode
91 lines | 1.9 KiB | text/plain | TextLexer
/ tests / test-inherit-mode
Alexis S. L. Carvalho
add test-inherit-mode
r6064 #!/bin/sh
# test that new files created in .hg inherit the permissions from .hg/store
"$TESTDIR/hghave" unix-permissions || exit 80
mkdir dir
# just in case somebody has a strange $TMPDIR
chmod g-s dir
cd dir
cat >printmodes.py <<EOF
import os, sys
allnames = []
isdir = {}
for root, dirs, files in os.walk(sys.argv[1]):
for d in dirs:
name = os.path.join(root, d)
isdir[name] = 1
allnames.append(name)
for f in files:
name = os.path.join(root, f)
allnames.append(name)
allnames.sort()
for name in allnames:
suffix = name in isdir and '/' or ''
print '%05o %s%s' % (os.lstat(name).st_mode & 07777, name, suffix)
EOF
Alexis S. L. Carvalho
try to fix test-inherit-mode on HFS+...
r6113 cat >mode.py <<EOF
import sys
import os
print '%05o' % os.lstat(sys.argv[1]).st_mode
EOF
Alexis S. L. Carvalho
add test-inherit-mode
r6064 umask 077
hg init repo
cd repo
Thomas Arendsen Hein
Use chmod 0770 and g+s instead of 02770 which does't work on Solaris 8.
r6073 chmod 0770 .hg/store
Alexis S. L. Carvalho
add test-inherit-mode
r6064
echo '% before commit'
echo '% store can be written by the group, other files cannot'
echo '% store is setgid'
python ../printmodes.py .
mkdir dir
touch foo dir/bar
hg ci -qAm 'add files'
echo
echo '% after commit'
echo '% working dir files can only be written by the owner'
echo '% files created in .hg can be written by the group'
Alexis S. L. Carvalho
tests: hide the name of the branch cache file
r6160 echo '% (in particular, store/**, dirstate, branch cache file, undo files)'
Alexis S. L. Carvalho
add test-inherit-mode
r6064 echo '% new directories are setgid'
python ../printmodes.py .
umask 007
hg init ../push
echo
echo '% before push'
echo '% group can write everything'
python ../printmodes.py ../push
umask 077
hg -q push ../push
echo
echo '% after push'
echo '% group can still write everything'
python ../printmodes.py ../push
Alexis S. L. Carvalho
try to fix test-inherit-mode on HFS+...
r6113
# 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
Alexis S. L. Carvalho
Fix thinko in test-inherit-mode...
r6301 chmod g+rwx .hg/store
Alexis S. L. Carvalho
try to fix test-inherit-mode on HFS+...
r6113 chmod g+s .hg/store 2> /dev/null
mkdir dir
touch dir/file
hg ci -qAm 'add dir/file'
storemode=`python ../mode.py .hg/store`
dirmode=`python ../mode.py .hg/store/data/dir`
if [ "$storemode" != "$dirmode" ]; then
echo "$storemode != $dirmode"
fi