remote-bzr: add utf-8 support for fetching [fc: added tests] Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index 0bcf8c5..0bd0759 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr
@@ -223,7 +223,7 @@ # is the blog already exported? if h in filenodes: mark = filenodes[h] - final.append((mode, mark, path)) + final.append((mode, mark, path.encode('utf-8'))) continue d = tree.get_file_text(fid) @@ -240,7 +240,7 @@ print "data %d" % len(d) print d - final.append((mode, mark, path)) + final.append((mode, mark, path.encode('utf-8'))) return final
diff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh index 1a9c8d7..6eacf09 100755 --- a/contrib/remote-helpers/test-bzr.sh +++ b/contrib/remote-helpers/test-bzr.sh
@@ -179,4 +179,29 @@ test_cmp expected actual ' +test_expect_success 'fetch utf-8 filenames' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp && LC_ALL=C" && + + export LC_ALL=en_US.UTF-8 + + ( + bzr init bzrrepo && + cd bzrrepo && + + echo test >> "áéíóú" && + bzr add "áéíóú" && + bzr commit -m utf-8 + ) && + + ( + git clone "bzr::$PWD/bzrrepo" gitrepo && + cd gitrepo && + git ls-files > ../actual + ) && + + echo "\"\\303\\241\\303\\251\\303\\255\\303\\263\\303\\272\"" > expected && + test_cmp expected actual +' + test_done