]>
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 | |
24 | echo >&2 "$i does not exist" | |
25 | exit 1 | |
26 | fi | |
27 | done | |
28 | ) | |
29 | ' | |
30 | ||
31 | test_expect_success 'more emptiness' ' | |
32 | svn_cmd mkdir -m "bang bang" "$svnrepo"/"! !" | |
33 | ' | |
34 | ||
35 | test_expect_success 'git svn rebase creates empty directory' ' | |
36 | ( cd cloned && git svn rebase ) | |
37 | test -d cloned/"! !" | |
38 | ' | |
39 | ||
40 | test_expect_success 'git svn mkdirs recreates empty directories' ' | |
41 | ( | |
42 | cd cloned && | |
43 | rm -r * && | |
44 | git svn mkdirs && | |
45 | for i in a b c d d/e d/e/f "weird file name" "! !" | |
46 | do | |
47 | if ! test -d "$i" | |
48 | then | |
49 | echo >&2 "$i does not exist" | |
50 | exit 1 | |
51 | fi | |
52 | done | |
53 | ) | |
54 | ' | |
55 | ||
56 | test_expect_success 'git svn mkdirs -r works' ' | |
57 | ( | |
58 | cd cloned && | |
59 | rm -r * && | |
60 | git svn mkdirs -r7 && | |
61 | for i in a b c d d/e d/e/f "weird file name" | |
62 | do | |
63 | if ! test -d "$i" | |
64 | then | |
65 | echo >&2 "$i does not exist" | |
66 | exit 1 | |
67 | fi | |
68 | done | |
69 | ||
70 | if test -d "! !" | |
71 | then | |
72 | echo >&2 "$i should not exist" | |
73 | exit 1 | |
74 | fi | |
75 | ||
76 | git svn mkdirs -r8 && | |
77 | if ! test -d "! !" | |
78 | then | |
79 | echo >&2 "$i not exist" | |
80 | exit 1 | |
81 | fi | |
82 | ) | |
83 | ' | |
84 | ||
9be30eed EW |
85 | test_expect_success 'initialize trunk' ' |
86 | for i in trunk trunk/a trunk/"weird file name" | |
87 | do | |
88 | svn_cmd mkdir -m "mkdir $i" "$svnrepo"/"$i" | |
89 | done | |
90 | ' | |
91 | ||
92 | test_expect_success 'clone trunk' 'git svn clone -s "$svnrepo" trunk' | |
93 | ||
94 | test_expect_success 'empty directories in trunk exist' ' | |
95 | ( | |
96 | cd trunk && | |
97 | for i in a "weird file name" | |
98 | do | |
99 | if ! test -d "$i" | |
100 | then | |
101 | echo >&2 "$i does not exist" | |
102 | exit 1 | |
103 | fi | |
104 | done | |
105 | ) | |
106 | ' | |
107 | ||
f9ad77a7 EW |
108 | test_expect_success 'remove a top-level directory from svn' ' |
109 | svn_cmd rm -m "remove d" "$svnrepo"/d | |
110 | ' | |
111 | ||
112 | test_expect_success 'removed top-level directory does not exist' ' | |
113 | git svn clone "$svnrepo" removed && | |
114 | test ! -e removed/d | |
115 | ||
116 | ' | |
a5b80d92 EW |
117 | unhandled=.git/svn/refs/remotes/git-svn/unhandled.log |
118 | test_expect_success 'git svn gc-ed files work' ' | |
119 | ( | |
120 | cd removed && | |
121 | git svn gc && | |
122 | : Compress::Zlib may not be available && | |
123 | if test -f "$unhandled".gz | |
124 | then | |
8eca03c8 | 125 | svn_cmd mkdir -m gz "$svnrepo"/gz && |
a5b80d92 EW |
126 | git reset --hard $(git rev-list HEAD | tail -1) && |
127 | git svn rebase && | |
128 | test -f "$unhandled".gz && | |
129 | test -f "$unhandled" && | |
130 | for i in a b c "weird file name" gz "! !" | |
131 | do | |
132 | if ! test -d "$i" | |
133 | then | |
134 | echo >&2 "$i does not exist" | |
135 | exit 1 | |
136 | fi | |
137 | done | |
138 | fi | |
139 | ) | |
140 | ' | |
f9ad77a7 | 141 | |
6111b934 | 142 | test_done |