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