You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.3 KiB
99 lines
2.3 KiB
#!/bin/sh |
|
# |
|
# Copyright (c) 2014 Alfred Perlstein |
|
# |
|
|
|
test_description='git svn propset tests' |
|
|
|
TEST_FAILS_SANITIZE_LEAK=true |
|
. ./lib-git-svn.sh |
|
|
|
test_expect_success 'setup propset via import' ' |
|
test_when_finished "rm -rf import" && |
|
|
|
foo_subdir2="subdir/subdir2/foo_subdir2" && |
|
mkdir -p import/subdir/subdir2 && |
|
( |
|
cd import && |
|
# for "add props top level" |
|
>foo && |
|
# for "add props relative" |
|
>subdir/foo_subdir && |
|
# for "add props subdir" |
|
>"$foo_subdir2" && |
|
svn_cmd import -m "import for git svn" . "$svnrepo" |
|
) |
|
' |
|
|
|
test_expect_success 'initialize git svn' ' |
|
git svn init "$svnrepo" |
|
' |
|
|
|
test_expect_success 'fetch revisions from svn' ' |
|
git svn fetch |
|
' |
|
|
|
set_props () { |
|
subdir="$1" |
|
file="$2" |
|
shift;shift; |
|
(cd "$subdir" && |
|
while [ $# -gt 0 ] ; do |
|
git svn propset "$1" "$2" "$file" || exit 1 |
|
shift;shift; |
|
done && |
|
echo hello >> "$file" && |
|
git commit -m "testing propset" "$file") |
|
} |
|
|
|
confirm_props () { |
|
subdir="$1" |
|
file="$2" |
|
shift;shift; |
|
(set -e ; cd "svn_project/$subdir" && |
|
while [ $# -gt 0 ] ; do |
|
test "$(svn_cmd propget "$1" "$file")" = "$2" || exit 1 |
|
shift;shift; |
|
done) |
|
} |
|
|
|
|
|
#The current implementation has a restriction: |
|
#svn propset will be taken as a delta for svn dcommit only |
|
#if the file content is also modified |
|
test_expect_success 'add props top level' ' |
|
set_props "." "foo" "svn:keywords" "FreeBSD=%H" && |
|
git svn dcommit && |
|
svn_cmd co "$svnrepo" svn_project && |
|
confirm_props "." "foo" "svn:keywords" "FreeBSD=%H" && |
|
rm -rf svn_project |
|
' |
|
|
|
test_expect_success 'add multiple props' ' |
|
set_props "." "foo" \ |
|
"svn:keywords" "FreeBSD=%H" fbsd:nokeywords yes && |
|
git svn dcommit && |
|
svn_cmd co "$svnrepo" svn_project && |
|
confirm_props "." "foo" \ |
|
"svn:keywords" "FreeBSD=%H" fbsd:nokeywords yes && |
|
rm -rf svn_project |
|
' |
|
|
|
test_expect_success 'add props subdir' ' |
|
set_props "." "$foo_subdir2" svn:keywords "FreeBSD=%H" && |
|
git svn dcommit && |
|
svn_cmd co "$svnrepo" svn_project && |
|
confirm_props "." "$foo_subdir2" "svn:keywords" "FreeBSD=%H" && |
|
rm -rf svn_project |
|
' |
|
|
|
test_expect_success 'add props relative' ' |
|
set_props "subdir/subdir2" "../foo_subdir" \ |
|
svn:keywords "FreeBSD=%H" && |
|
git svn dcommit && |
|
svn_cmd co "$svnrepo" svn_project && |
|
confirm_props "subdir/subdir2" "../foo_subdir" \ |
|
svn:keywords "FreeBSD=%H" && |
|
rm -rf svn_project |
|
' |
|
test_done
|
|
|