]>
Commit | Line | Data |
---|---|---|
6111b934 EW |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2009 Eric Wong | |
4 | ||
5 | test_description='git svn creates empty directories' | |
6 | . ./lib-git-svn.sh | |
7 | ||
8 | test_expect_success 'initialize repo' ' | |
9 | for i in a b c d d/e d/e/f "weird file name" | |
10 | do | |
11 | svn_cmd mkdir -m "mkdir $i" "$svnrepo"/"$i" | |
12 | done | |
13 | ' | |
14 | ||
15 | test_expect_success 'clone' 'git svn clone "$svnrepo" cloned' | |
16 | ||
17 | test_expect_success 'empty directories exist' ' | |
18 | ( | |
19 | cd cloned && | |
20 | for i in a b c d d/e d/e/f "weird file name" | |
21 | do | |
22 | if ! test -d "$i" | |
23 | then | |
cff4243d | 24 | echo >&2 "$i does not exist" && |
6111b934 EW |
25 | exit 1 |
26 | fi | |
27 | done | |
28 | ) | |
29 | ' | |
30 | ||
55f9d7a7 MH |
31 | test_expect_success 'option automkdirs set to false' ' |
32 | ( | |
33 | git svn init "$svnrepo" cloned-no-mkdirs && | |
34 | cd cloned-no-mkdirs && | |
35 | git config svn-remote.svn.automkdirs false && | |
36 | git svn fetch && | |
37 | for i in a b c d d/e d/e/f "weird file name" | |
38 | do | |
39 | if test -d "$i" | |
40 | then | |
cff4243d | 41 | echo >&2 "$i exists" && |
55f9d7a7 MH |
42 | exit 1 |
43 | fi | |
44 | done | |
45 | ) | |
46 | ' | |
47 | ||
6111b934 EW |
48 | test_expect_success 'more emptiness' ' |
49 | svn_cmd mkdir -m "bang bang" "$svnrepo"/"! !" | |
50 | ' | |
51 | ||
52 | test_expect_success 'git svn rebase creates empty directory' ' | |
2dec68cf | 53 | ( cd cloned && git svn rebase ) && |
6111b934 EW |
54 | test -d cloned/"! !" |
55 | ' | |
56 | ||
57 | test_expect_success 'git svn mkdirs recreates empty directories' ' | |
58 | ( | |
59 | cd cloned && | |
60 | rm -r * && | |
61 | git svn mkdirs && | |
62 | for i in a b c d d/e d/e/f "weird file name" "! !" | |
63 | do | |
64 | if ! test -d "$i" | |
65 | then | |
cff4243d | 66 | echo >&2 "$i does not exist" && |
6111b934 EW |
67 | exit 1 |
68 | fi | |
69 | done | |
70 | ) | |
71 | ' | |
72 | ||
73 | test_expect_success 'git svn mkdirs -r works' ' | |
74 | ( | |
75 | cd cloned && | |
76 | rm -r * && | |
77 | git svn mkdirs -r7 && | |
78 | for i in a b c d d/e d/e/f "weird file name" | |
79 | do | |
80 | if ! test -d "$i" | |
81 | then | |
cff4243d | 82 | echo >&2 "$i does not exist" && |
6111b934 EW |
83 | exit 1 |
84 | fi | |
cff4243d | 85 | done && |
6111b934 EW |
86 | |
87 | if test -d "! !" | |
88 | then | |
cff4243d | 89 | echo >&2 "$i should not exist" && |
6111b934 | 90 | exit 1 |
cff4243d | 91 | fi && |
6111b934 EW |
92 | |
93 | git svn mkdirs -r8 && | |
94 | if ! test -d "! !" | |
95 | then | |
cff4243d | 96 | echo >&2 "$i not exist" && |
6111b934 EW |
97 | exit 1 |
98 | fi | |
99 | ) | |
100 | ' | |
101 | ||
9be30eed EW |
102 | test_expect_success 'initialize trunk' ' |
103 | for i in trunk trunk/a trunk/"weird file name" | |
104 | do | |
105 | svn_cmd mkdir -m "mkdir $i" "$svnrepo"/"$i" | |
106 | done | |
107 | ' | |
108 | ||
109 | test_expect_success 'clone trunk' 'git svn clone -s "$svnrepo" trunk' | |
110 | ||
111 | test_expect_success 'empty directories in trunk exist' ' | |
112 | ( | |
113 | cd trunk && | |
114 | for i in a "weird file name" | |
115 | do | |
116 | if ! test -d "$i" | |
117 | then | |
cff4243d | 118 | echo >&2 "$i does not exist" && |
9be30eed EW |
119 | exit 1 |
120 | fi | |
121 | done | |
122 | ) | |
123 | ' | |
124 | ||
f9ad77a7 EW |
125 | test_expect_success 'remove a top-level directory from svn' ' |
126 | svn_cmd rm -m "remove d" "$svnrepo"/d | |
127 | ' | |
128 | ||
129 | test_expect_success 'removed top-level directory does not exist' ' | |
130 | git svn clone "$svnrepo" removed && | |
131 | test ! -e removed/d | |
132 | ||
133 | ' | |
a5b80d92 EW |
134 | unhandled=.git/svn/refs/remotes/git-svn/unhandled.log |
135 | test_expect_success 'git svn gc-ed files work' ' | |
136 | ( | |
137 | cd removed && | |
138 | git svn gc && | |
139 | : Compress::Zlib may not be available && | |
140 | if test -f "$unhandled".gz | |
141 | then | |
8eca03c8 | 142 | svn_cmd mkdir -m gz "$svnrepo"/gz && |
a5b80d92 EW |
143 | git reset --hard $(git rev-list HEAD | tail -1) && |
144 | git svn rebase && | |
145 | test -f "$unhandled".gz && | |
146 | test -f "$unhandled" && | |
147 | for i in a b c "weird file name" gz "! !" | |
148 | do | |
149 | if ! test -d "$i" | |
150 | then | |
cff4243d | 151 | echo >&2 "$i does not exist" && |
a5b80d92 EW |
152 | exit 1 |
153 | fi | |
154 | done | |
155 | fi | |
156 | ) | |
157 | ' | |
f9ad77a7 | 158 | |
6111b934 | 159 | test_done |