remote-bzr: add utf-8 support for pushing
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5445b24e22
commit
6ff8d4e748
@ -512,6 +512,11 @@ class CustomTree():
|
|||||||
def get_symlink_target(self, file_id):
|
def get_symlink_target(self, file_id):
|
||||||
return self.updates[file_id]['data']
|
return self.updates[file_id]['data']
|
||||||
|
|
||||||
|
def c_style_unescape(string):
|
||||||
|
if string[0] == string[-1] == '"':
|
||||||
|
return string.decode('string-escape')[1:-1]
|
||||||
|
return string
|
||||||
|
|
||||||
def parse_commit(parser):
|
def parse_commit(parser):
|
||||||
global marks, blob_marks, bmarks, parsed_refs
|
global marks, blob_marks, bmarks, parsed_refs
|
||||||
global mode
|
global mode
|
||||||
@ -551,6 +556,7 @@ def parse_commit(parser):
|
|||||||
f = { 'deleted' : True }
|
f = { 'deleted' : True }
|
||||||
else:
|
else:
|
||||||
die('Unknown file command: %s' % line)
|
die('Unknown file command: %s' % line)
|
||||||
|
path = c_style_unescape(path).decode('utf-8')
|
||||||
files[path] = f
|
files[path] = f
|
||||||
|
|
||||||
repo = parser.repo
|
repo = parser.repo
|
||||||
|
@ -204,4 +204,35 @@ test_expect_success 'fetch utf-8 filenames' '
|
|||||||
test_cmp expected actual
|
test_cmp expected actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'push 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 one >> content &&
|
||||||
|
bzr add content &&
|
||||||
|
bzr commit -m one
|
||||||
|
) &&
|
||||||
|
|
||||||
|
(
|
||||||
|
git clone "bzr::$PWD/bzrrepo" gitrepo &&
|
||||||
|
cd gitrepo &&
|
||||||
|
|
||||||
|
echo test >> "áéíóú" &&
|
||||||
|
git add "áéíóú" &&
|
||||||
|
git commit -m utf-8 &&
|
||||||
|
|
||||||
|
git push
|
||||||
|
) &&
|
||||||
|
|
||||||
|
(cd bzrrepo && bzr ls > ../actual) &&
|
||||||
|
echo -e "content\náéíóú" > expected &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user