##// END OF EJS Templates
clone: warn when streaming was requested but couldn't be performed...
clone: warn when streaming was requested but couldn't be performed This helps both users and the people who support them figure out why a stream clone couldn't be performed. In an upcoming patch we're going to add a way for servers to hard abort on a full getbundle. In those cases servers might expect clients to perform a stream clone, so it's important to communicate why one couldn't be done.

File last commit:

r29191:ad1ce3c7 default
r32259:076f1ff4 default
Show More
test-inherit-mode.t
158 lines | 3.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
> import os, sys
>
> 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 ''
> print '%05o %s%s' % (os.lstat(name).st_mode & 07777, name, suffix)
> EOF
$ cat >mode.py <<EOF
> import sys
> import os
> print '%05o' % os.lstat(sys.argv[1]).st_mode
> 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
$ python ../printmodes.py .
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
$ python ../printmodes.py .
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
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/
00660 ./.hg/store/data/dir/bar.i
00660 ./.hg/store/data/foo.i
00660 ./.hg/store/fncache
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
$ python ../printmodes.py ../push
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
$ python ../printmodes.py ../push
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
Mads Kiilerich
branchmap: use revbranchcache when updating branch map...
r23786 00660 ../push/.hg/cache/rbc-names-v1
00660 ../push/.hg/cache/rbc-revs-v1
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/
00660 ../push/.hg/store/data/dir/bar.i
00660 ../push/.hg/store/data/foo.i
00660 ../push/.hg/store/fncache
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'
$ storemode=`python ../mode.py .hg/store`
$ dirmode=`python ../mode.py .hg/store/data/dir`
$ 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