]> git.ipfire.org Git - thirdparty/git.git/blob - t/t9148-git-svn-propset.sh
The third batch
[thirdparty/git.git] / t / t9148-git-svn-propset.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2014 Alfred Perlstein
4 #
5
6 test_description='git svn propset tests'
7
8 . ./lib-git-svn.sh
9
10 test_expect_success 'setup propset via import' '
11 test_when_finished "rm -rf import" &&
12
13 foo_subdir2="subdir/subdir2/foo_subdir2" &&
14 mkdir -p import/subdir/subdir2 &&
15 (
16 cd import &&
17 # for "add props top level"
18 >foo &&
19 # for "add props relative"
20 >subdir/foo_subdir &&
21 # for "add props subdir"
22 >"$foo_subdir2" &&
23 svn_cmd import -m "import for git svn" . "$svnrepo"
24 )
25 '
26
27 test_expect_success 'initialize git svn' '
28 git svn init "$svnrepo"
29 '
30
31 test_expect_success 'fetch revisions from svn' '
32 git svn fetch
33 '
34
35 set_props () {
36 subdir="$1"
37 file="$2"
38 shift;shift;
39 (cd "$subdir" &&
40 while [ $# -gt 0 ] ; do
41 git svn propset "$1" "$2" "$file" || exit 1
42 shift;shift;
43 done &&
44 echo hello >> "$file" &&
45 git commit -m "testing propset" "$file")
46 }
47
48 confirm_props () {
49 subdir="$1"
50 file="$2"
51 shift;shift;
52 (set -e ; cd "svn_project/$subdir" &&
53 while [ $# -gt 0 ] ; do
54 test "$(svn_cmd propget "$1" "$file")" = "$2" || exit 1
55 shift;shift;
56 done)
57 }
58
59
60 #The current implementation has a restriction:
61 #svn propset will be taken as a delta for svn dcommit only
62 #if the file content is also modified
63 test_expect_success 'add props top level' '
64 set_props "." "foo" "svn:keywords" "FreeBSD=%H" &&
65 git svn dcommit &&
66 svn_cmd co "$svnrepo" svn_project &&
67 confirm_props "." "foo" "svn:keywords" "FreeBSD=%H" &&
68 rm -rf svn_project
69 '
70
71 test_expect_success 'add multiple props' '
72 set_props "." "foo" \
73 "svn:keywords" "FreeBSD=%H" fbsd:nokeywords yes &&
74 git svn dcommit &&
75 svn_cmd co "$svnrepo" svn_project &&
76 confirm_props "." "foo" \
77 "svn:keywords" "FreeBSD=%H" fbsd:nokeywords yes &&
78 rm -rf svn_project
79 '
80
81 test_expect_success 'add props subdir' '
82 set_props "." "$foo_subdir2" svn:keywords "FreeBSD=%H" &&
83 git svn dcommit &&
84 svn_cmd co "$svnrepo" svn_project &&
85 confirm_props "." "$foo_subdir2" "svn:keywords" "FreeBSD=%H" &&
86 rm -rf svn_project
87 '
88
89 test_expect_success 'add props relative' '
90 set_props "subdir/subdir2" "../foo_subdir" \
91 svn:keywords "FreeBSD=%H" &&
92 git svn dcommit &&
93 svn_cmd co "$svnrepo" svn_project &&
94 confirm_props "subdir/subdir2" "../foo_subdir" \
95 svn:keywords "FreeBSD=%H" &&
96 rm -rf svn_project
97 '
98 test_done