Staging
v0.5.1
https://github.com/git/git
Raw File
Tip revision: 0ad8ff2cd185e84fd49dd961370411e379681f10 authored by Brandon Casey on 22 July 2009, 22:20:53 UTC
configure.ac: properly unset NEEDS_SSL_WITH_CRYPTO when sha1 func is missing
Tip revision: 0ad8ff2
t4129-apply-samemode.sh
#!/bin/sh

test_description='applying patch with mode bits'

. ./test-lib.sh

if test "$(git config --bool core.filemode)" = false
then
	say 'filemode disabled on the filesystem'
else
	test_set_prereq FILEMODE
fi

test_expect_success setup '
	echo original >file &&
	git add file &&
	test_tick &&
	git commit -m initial &&
	git tag initial &&
	echo modified >file &&
	git diff --stat -p >patch-0.txt &&
	chmod +x file &&
	git diff --stat -p >patch-1.txt
'

test_expect_success FILEMODE 'same mode (no index)' '
	git reset --hard &&
	chmod +x file &&
	git apply patch-0.txt &&
	test -x file
'

test_expect_success FILEMODE 'same mode (with index)' '
	git reset --hard &&
	chmod +x file &&
	git add file &&
	git apply --index patch-0.txt &&
	test -x file &&
	git diff --exit-code
'

test_expect_success FILEMODE 'same mode (index only)' '
	git reset --hard &&
	chmod +x file &&
	git add file &&
	git apply --cached patch-0.txt &&
	git ls-files -s file | grep "^100755"
'

test_expect_success FILEMODE 'mode update (no index)' '
	git reset --hard &&
	git apply patch-1.txt &&
	test -x file
'

test_expect_success FILEMODE 'mode update (with index)' '
	git reset --hard &&
	git apply --index patch-1.txt &&
	test -x file &&
	git diff --exit-code
'

test_expect_success FILEMODE 'mode update (index only)' '
	git reset --hard &&
	git apply --cached patch-1.txt &&
	git ls-files -s file | grep "^100755"
'

test_done
back to top