]>
Commit | Line | Data |
---|---|---|
83c9433e AP |
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 | ||
4f4d2017 ÆAB |
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 | ' | |
83c9433e AP |
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 |