3 # Copyright (c) 2012 Felipe Contreras
6 test_description
='Test remote-bzr'
10 if ! test_have_prereq PYTHON
; then
11 skip_all
='skipping remote-bzr tests; python not available'
15 if ! python
-c 'import bzrlib'; then
16 skip_all
='skipping remote-bzr tests; bzr not available'
23 git log
--format='%s' -1 &&
30 test_cmp expected actual
33 bzr whoami
"A U Thor <author@example.com>"
35 test_expect_success
'cloning' '
44 git clone "bzr::bzrrepo" gitrepo &&
45 check gitrepo one master
48 test_expect_success
'pulling' '
55 (cd gitrepo && git pull) &&
57 check gitrepo two master
60 test_expect_success
'pushing' '
63 echo three > content &&
64 git commit -a -m three &&
68 echo three > expected &&
69 cat bzrrepo/content > actual &&
70 test_cmp expected actual
73 test_expect_success
'roundtrip' '
77 git log --format="%s" -1 origin/master > actual
79 echo three > expected &&
80 test_cmp expected actual &&
82 (cd gitrepo && git push && git pull) &&
86 echo four > content &&
90 (cd gitrepo && git pull && git push) &&
92 check gitrepo four master &&
96 echo five > content &&
97 git commit -a -m five &&
101 (cd bzrrepo && bzr revert) &&
103 echo five > expected &&
104 cat bzrrepo/content > actual &&
105 test_cmp expected actual
109 100644 blob 54f9d6da5c91d556e6b54340b1327573073030af content
110 100755 blob 68769579c3eaadbe555379b9c3538e6628bae1eb executable
111 120000 blob 6b584e8ece562ebffc15d38808cd6b98fc3d97ea link
114 test_expect_success
'special modes' '
117 echo exec > executable
118 chmod +x executable &&
120 bzr commit -m exec &&
123 bzr commit -m link &&
132 git ls-tree HEAD > ../actual
135 test_cmp expected actual &&
139 git cat-file -p HEAD:link > ../actual
142 printf content > expected &&
143 test_cmp expected actual
147 100644 blob 54f9d6da5c91d556e6b54340b1327573073030af content
148 100755 blob 68769579c3eaadbe555379b9c3538e6628bae1eb executable
149 120000 blob 6b584e8ece562ebffc15d38808cd6b98fc3d97ea link
150 040000 tree 35c0caa46693cef62247ac89a680f0c5ce32b37b movedir-new
153 test_expect_success
'moving directory' '
157 echo one > movedir/one &&
158 echo two > movedir/two &&
160 bzr commit -m movedir &&
161 bzr mv movedir movedir-new &&
162 bzr commit -m movedir-new
168 git ls-tree HEAD > ../actual
171 test_cmp expected actual
174 test_expect_success
'different authors' '
177 echo john >> content &&
179 --author "Jane Rey <jrey@example.com>" \
180 --author "John Doe <jdoe@example.com>"
186 git show --format="%an <%ae>, %cn <%ce>" --quiet > ../actual
189 echo "Jane Rey <jrey@example.com>, A U Thor <author@example.com>" > expected &&
190 test_cmp expected actual
193 # cleanup previous stuff
194 rm -rf bzrrepo gitrepo
196 test_expect_success
'fetch utf-8 filenames' '
197 test_when_finished "rm -rf bzrrepo gitrepo && LC_ALL=C" &&
206 echo test >> "ærø" &&
208 echo test >> "ø~?" &&
210 bzr commit -m add-utf-8 &&
211 echo test >> "ærø" &&
212 bzr commit -m test-utf-8 &&
214 bzr mv "ærø" "ø~?" &&
215 bzr commit -m bzr-mv-utf-8
219 git clone "bzr::bzrrepo" gitrepo &&
221 git -c core.quotepath=false ls-files > ../actual
223 echo "ø~?" > expected &&
224 test_cmp expected actual
227 test_expect_success
'push utf-8 filenames' '
228 test_when_finished "rm -rf bzrrepo gitrepo && LC_ALL=C" &&
230 mkdir -p tmp && cd tmp &&
239 echo one >> content &&
245 git clone "bzr::bzrrepo" gitrepo &&
248 echo test >> "ærø" &&
250 git commit -m utf-8 &&
255 (cd bzrrepo && bzr ls > ../actual) &&
256 printf "content\nærø\n" > expected &&
257 test_cmp expected actual
260 test_expect_success
'pushing a merge' '
261 test_when_finished "rm -rf bzrrepo gitrepo" &&
266 echo one > content &&
271 git clone "bzr::bzrrepo" gitrepo &&
275 echo two > content &&
281 echo three > content &&
282 git commit -a -m three &&
284 git merge origin/master || true &&
285 echo three > content &&
286 git commit -a --no-edit &&
290 echo three > expected &&
291 cat bzrrepo/content > actual &&
292 test_cmp expected actual
301 test_expect_success
'proper bzr repo' '
302 test_when_finished "rm -rf bzrrepo gitrepo" &&
304 bzr init-repo bzrrepo &&
307 bzr init bzrrepo/trunk &&
309 echo one >> content &&
315 bzr branch bzrrepo/trunk bzrrepo/branch &&
317 echo two >> content &&
322 git clone "bzr::bzrrepo" gitrepo &&
324 git for-each-ref --format "%(refname:short)" refs/remotes/origin > ../actual
327 test_cmp expected actual
330 test_expect_success
'strip' '
331 test_when_finished "rm -rf bzrrepo gitrepo" &&
337 echo one >> content &&
341 echo two >> content &&
345 git clone "bzr::bzrrepo" gitrepo &&
349 bzr uncommit --force &&
351 echo three >> content &&
352 bzr commit -m three &&
354 echo four >> content &&
355 bzr commit -m four &&
356 bzr log --line | sed -e "s/^[0-9][0-9]*: //" > ../expected
362 git log --format="%an %ad %s" --date=short origin/master > ../actual
365 test_cmp expected actual