git/t/t9124-git-svn-dcommit-auto-props.sh
Johannes Schindelin b2fe065722 mingw: handle the missing POSIXPERM prereq in t9124
On Windows, the permission system works completely differently than
expected by some of the tests. So let's make sure that we do not test
POSIX functionality on Windows.

This lets t9124-git-svn-dcommit-auto-props.sh pass in Git for Windows'
SDK.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-01-28 13:36:11 -08:00

106 lines
2.6 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2008 Brad King
test_description='git svn dcommit honors auto-props'
. ./lib-git-svn.sh
generate_auto_props() {
cat << EOF
[miscellany]
enable-auto-props=$1
[auto-props]
*.sh = svn:mime-type=application/x-shellscript; svn:eol-style=LF
*.txt = svn:mime-type=text/plain; svn:eol-style = native
EOF
}
test_expect_success 'initialize git svn' '
mkdir import &&
(
cd import &&
echo foo >foo &&
svn_cmd import -m "import for git svn" . "$svnrepo"
) &&
rm -rf import &&
git svn init "$svnrepo" &&
git svn fetch
'
test_expect_success 'enable auto-props config' '
mkdir user &&
generate_auto_props yes >user/config
'
test_expect_success 'add files matching auto-props' '
write_script exec1.sh </dev/null &&
echo "hello" >hello.txt &&
echo bar >bar &&
git add exec1.sh hello.txt bar &&
git commit -m "files for enabled auto-props" &&
git svn dcommit --config-dir=user
'
test_expect_success 'disable auto-props config' '
generate_auto_props no >user/config
'
test_expect_success 'add files matching disabled auto-props' '
write_script exec2.sh </dev/null &&
echo "world" >world.txt &&
echo zot >zot &&
git add exec2.sh world.txt zot &&
git commit -m "files for disabled auto-props" &&
git svn dcommit --config-dir=user
'
test_expect_success 'check resulting svn repository' '
(
mkdir work &&
cd work &&
svn_cmd co "$svnrepo" &&
cd svnrepo &&
# Check properties from first commit.
if test_have_prereq POSIXPERM
then
test "x$(svn_cmd propget svn:executable exec1.sh)" = "x*"
fi &&
test "x$(svn_cmd propget svn:mime-type exec1.sh)" = \
"xapplication/x-shellscript" &&
test "x$(svn_cmd propget svn:mime-type hello.txt)" = "xtext/plain" &&
test "x$(svn_cmd propget svn:eol-style hello.txt)" = "xnative" &&
test "x$(svn_cmd propget svn:mime-type bar)" = "x" &&
# Check properties from second commit.
if test_have_prereq POSIXPERM
then
test "x$(svn_cmd propget svn:executable exec2.sh)" = "x*"
fi &&
test "x$(svn_cmd propget svn:mime-type exec2.sh)" = "x" &&
test "x$(svn_cmd propget svn:mime-type world.txt)" = "x" &&
test "x$(svn_cmd propget svn:eol-style world.txt)" = "x" &&
test "x$(svn_cmd propget svn:mime-type zot)" = "x"
)
'
test_expect_success 'check renamed file' '
test -d user &&
generate_auto_props yes > user/config &&
git mv foo foo.sh &&
git commit -m "foo => foo.sh" &&
git svn dcommit --config-dir=user &&
(
cd work/svnrepo &&
svn_cmd up &&
test ! -e foo &&
test -e foo.sh &&
test "x$(svn_cmd propget svn:mime-type foo.sh)" = \
"xapplication/x-shellscript" &&
test "x$(svn_cmd propget svn:eol-style foo.sh)" = "xLF"
)
'
test_done