Merge branch 'mt/do-not-use-scld-in-working-tree'
"git apply" adjusted the permission bits of working-tree files and directories according core.sharedRepository setting by mistake and for a long time, which has been corrected. * mt/do-not-use-scld-in-working-tree: apply: don't use core.sharedRepository to create working tree files
This commit is contained in:
@ -73,4 +73,30 @@ test_expect_success FILEMODE 'bogus mode is rejected' '
|
||||
test_i18ngrep "invalid mode" err
|
||||
'
|
||||
|
||||
test_expect_success POSIXPERM 'do not use core.sharedRepository for working tree files' '
|
||||
git reset --hard &&
|
||||
test_config core.sharedRepository 0666 &&
|
||||
(
|
||||
# Remove a default ACL if possible.
|
||||
(setfacl -k newdir 2>/dev/null || true) &&
|
||||
umask 0077 &&
|
||||
|
||||
# Test both files (f1) and leading dirs (d)
|
||||
mkdir d &&
|
||||
touch f1 d/f2 &&
|
||||
git add f1 d/f2 &&
|
||||
git diff --staged >patch-f1-and-f2.txt &&
|
||||
|
||||
rm -rf d f1 &&
|
||||
git apply patch-f1-and-f2.txt &&
|
||||
|
||||
echo "-rw-------" >f1_mode.expected &&
|
||||
echo "drwx------" >d_mode.expected &&
|
||||
test_modebits f1 >f1_mode.actual &&
|
||||
test_modebits d >d_mode.actual &&
|
||||
test_cmp f1_mode.expected f1_mode.actual &&
|
||||
test_cmp d_mode.expected d_mode.actual
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
@ -367,9 +367,9 @@ test_chmod () {
|
||||
git update-index --add "--chmod=$@"
|
||||
}
|
||||
|
||||
# Get the modebits from a file.
|
||||
# Get the modebits from a file or directory.
|
||||
test_modebits () {
|
||||
ls -l "$1" | sed -e 's|^\(..........\).*|\1|'
|
||||
ls -ld "$1" | sed -e 's|^\(..........\).*|\1|'
|
||||
}
|
||||
|
||||
# Unset a configuration variable, but don't fail if it doesn't exist.
|
||||
|
Reference in New Issue
Block a user