diff options
author | Christophe Simonis <christophe@kn.gl> | 2013-04-08 13:36:38 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-04-08 14:09:31 -0700 |
commit | 5ff4fc649e18c02bc475ec5785a985ac5f6e0688 (patch) | |
tree | b31c05a4e526c570790e816d1a77d826f00c372d /contrib/remote-helpers | |
parent | Revert 4b7f53da7618 (simplify-merges: drop merge from irrelevant side branch,... (diff) | |
download | tgif-5ff4fc649e18c02bc475ec5785a985ac5f6e0688.tar.xz |
remote-bzr: fix utf-8 support for fetching
The previous patches didn't deal with all the scenarios.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/remote-helpers')
-rwxr-xr-x | contrib/remote-helpers/git-remote-bzr | 19 | ||||
-rwxr-xr-x | contrib/remote-helpers/test-bzr.sh | 9 |
2 files changed, 19 insertions, 9 deletions
diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index fad4a48cdc..55ebf195be 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -183,21 +183,24 @@ def get_filechanges(cur, prev): changes = cur.changes_from(prev) + def u(s): + return s.encode('utf-8') + for path, fid, kind in changes.added: - modified[path] = fid + modified[u(path)] = fid for path, fid, kind in changes.removed: - removed[path] = None + removed[u(path)] = None for path, fid, kind, mod, _ in changes.modified: - modified[path] = fid + modified[u(path)] = fid for oldpath, newpath, fid, kind, mod, _ in changes.renamed: - removed[oldpath] = None + removed[u(oldpath)] = None if kind == 'directory': lst = cur.list_files(from_dir=newpath, recursive=True) for path, file_class, kind, fid, entry in lst: if kind != 'directory': - modified[newpath + '/' + path] = fid + modified[u(newpath + '/' + path)] = fid else: - modified[newpath] = fid + modified[u(newpath)] = fid return modified, removed @@ -223,7 +226,7 @@ def export_files(tree, files): # is the blog already exported? if h in filenodes: mark = filenodes[h] - final.append((mode, mark, path.encode('utf-8'))) + final.append((mode, mark, path)) continue d = tree.get_file_text(fid) @@ -240,7 +243,7 @@ def export_files(tree, files): print "data %d" % len(d) print d - final.append((mode, mark, path.encode('utf-8'))) + final.append((mode, mark, path)) return final diff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh index f4c77681dd..e800c97fcf 100755 --- a/contrib/remote-helpers/test-bzr.sh +++ b/contrib/remote-helpers/test-bzr.sh @@ -177,6 +177,13 @@ test_expect_success 'fetch utf-8 filenames' ' echo test >> "áéíóú" && bzr add "áéíóú" && + echo test >> "îø∫∆" && + bzr add "îø∫∆" && + bzr commit -m utf-8 && + echo test >> "áéíóú" && + bzr commit -m utf-8 && + bzr rm "îø∫∆" && + bzr mv "áéíóú" "åß∂" && bzr commit -m utf-8 ) && @@ -186,7 +193,7 @@ test_expect_success 'fetch utf-8 filenames' ' git ls-files > ../actual ) && - echo "\"\\303\\241\\303\\251\\303\\255\\303\\263\\303\\272\"" > expected && + echo "\"\\303\\245\\303\\237\\342\\210\\202\"" > expected && test_cmp expected actual ' |