]>
Commit | Line | Data |
---|---|---|
128de657 BK |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2008 Brad King | |
4 | ||
1364ff27 | 5 | test_description='git svn dcommit honors auto-props' |
128de657 BK |
6 | |
7 | . ./lib-git-svn.sh | |
8 | ||
9 | generate_auto_props() { | |
10 | cat << EOF | |
11 | [miscellany] | |
12 | enable-auto-props=$1 | |
13 | [auto-props] | |
14 | *.sh = svn:mime-type=application/x-shellscript; svn:eol-style=LF | |
15 | *.txt = svn:mime-type=text/plain; svn:eol-style = native | |
16 | EOF | |
17 | } | |
18 | ||
f964732c | 19 | test_expect_success 'initialize git svn' ' |
128de657 BK |
20 | mkdir import && |
21 | ( | |
22 | cd import && | |
23 | echo foo >foo && | |
da083d68 | 24 | svn_cmd import -m "import for git svn" . "$svnrepo" |
128de657 BK |
25 | ) && |
26 | rm -rf import && | |
a48fcd83 | 27 | git svn init "$svnrepo" && |
1364ff27 | 28 | git svn fetch |
128de657 BK |
29 | ' |
30 | ||
31 | test_expect_success 'enable auto-props config' ' | |
128de657 BK |
32 | mkdir user && |
33 | generate_auto_props yes >user/config | |
34 | ' | |
35 | ||
36 | test_expect_success 'add files matching auto-props' ' | |
128de657 BK |
37 | echo "#!$SHELL_PATH" >exec1.sh && |
38 | chmod +x exec1.sh && | |
39 | echo "hello" >hello.txt && | |
40 | echo bar >bar && | |
41 | git add exec1.sh hello.txt bar && | |
42 | git commit -m "files for enabled auto-props" && | |
43 | git svn dcommit --config-dir=user | |
44 | ' | |
45 | ||
46 | test_expect_success 'disable auto-props config' ' | |
128de657 BK |
47 | generate_auto_props no >user/config |
48 | ' | |
49 | ||
50 | test_expect_success 'add files matching disabled auto-props' ' | |
128de657 BK |
51 | echo "#$SHELL_PATH" >exec2.sh && |
52 | chmod +x exec2.sh && | |
53 | echo "world" >world.txt && | |
54 | echo zot >zot && | |
55 | git add exec2.sh world.txt zot && | |
56 | git commit -m "files for disabled auto-props" && | |
57 | git svn dcommit --config-dir=user | |
58 | ' | |
59 | ||
60 | test_expect_success 'check resulting svn repository' ' | |
a786091b | 61 | ( |
128de657 BK |
62 | mkdir work && |
63 | cd work && | |
da083d68 | 64 | svn_cmd co "$svnrepo" && |
128de657 BK |
65 | cd svnrepo && |
66 | ||
67 | # Check properties from first commit. | |
da083d68 ER |
68 | test "x$(svn_cmd propget svn:executable exec1.sh)" = "x*" && |
69 | test "x$(svn_cmd propget svn:mime-type exec1.sh)" = \ | |
128de657 | 70 | "xapplication/x-shellscript" && |
da083d68 ER |
71 | test "x$(svn_cmd propget svn:mime-type hello.txt)" = "xtext/plain" && |
72 | test "x$(svn_cmd propget svn:eol-style hello.txt)" = "xnative" && | |
73 | test "x$(svn_cmd propget svn:mime-type bar)" = "x" && | |
128de657 BK |
74 | |
75 | # Check properties from second commit. | |
da083d68 ER |
76 | test "x$(svn_cmd propget svn:executable exec2.sh)" = "x*" && |
77 | test "x$(svn_cmd propget svn:mime-type exec2.sh)" = "x" && | |
78 | test "x$(svn_cmd propget svn:mime-type world.txt)" = "x" && | |
79 | test "x$(svn_cmd propget svn:eol-style world.txt)" = "x" && | |
80 | test "x$(svn_cmd propget svn:mime-type zot)" = "x" | |
a786091b | 81 | ) |
128de657 BK |
82 | ' |
83 | ||
7c4d0219 PT |
84 | test_expect_success 'check renamed file' ' |
85 | test -d user && | |
86 | generate_auto_props yes > user/config && | |
87 | git mv foo foo.sh && | |
88 | git commit -m "foo => foo.sh" && | |
89 | git svn dcommit --config-dir=user && | |
90 | ( | |
91 | cd work/svnrepo && | |
da083d68 | 92 | svn_cmd up && |
7c4d0219 PT |
93 | test ! -e foo && |
94 | test -e foo.sh && | |
da083d68 | 95 | test "x$(svn_cmd propget svn:mime-type foo.sh)" = \ |
7c4d0219 | 96 | "xapplication/x-shellscript" && |
da083d68 | 97 | test "x$(svn_cmd propget svn:eol-style foo.sh)" = "xLF" |
7c4d0219 PT |
98 | ) |
99 | ' | |
100 | ||
128de657 | 101 | test_done |