summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcontrib/remote-helpers/git-remote-bzr4
-rwxr-xr-xcontrib/remote-helpers/test-bzr.sh25
2 files changed, 27 insertions, 2 deletions
diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr
index 0bcf8c5835..0bd0759d7f 100755
--- a/contrib/remote-helpers/git-remote-bzr
+++ b/contrib/remote-helpers/git-remote-bzr
@@ -223,7 +223,7 @@ def export_files(tree, files):
# 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 @@ def export_files(tree, files):
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 1a9c8d775c..6eacf09a9b 100755
--- a/contrib/remote-helpers/test-bzr.sh
+++ b/contrib/remote-helpers/test-bzr.sh
@@ -179,4 +179,29 @@ test_expect_success 'different authors' '
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