can't push or pull unicode names into or out of an svn checkout
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar Subversion Plugin |
Fix Released
|
Low
|
Jelmer Vernooij |
Bug Description
Normally, pushing and pulling (or checking out) from an svn repository or an svn checkout works fine. However, when Unicode filenames are involved, it fails when targeting an svn checkout. (Note that the same thing applies to bzr-svn lightweight checkouts, since they are just really just svn checkouts.)
I've reported a number of Unicode-related bugs in the past. I don't believe this is a duplicate of any of them.
With bzr 1.9 and bzr-svn 0.4.15 (both from Ubuntu intrepid packages):
First, setup a temporary environment:
mkdir /tmp/bzr-svn-test
cd /tmp/bzr-svn-test
svnadmin create svn-repos
svn co file://
bzr branch svn-repos bzr-branch
Then, try to add a file named "✼" from bzr and push it into the repository:
cd bzr-branch
touch ✼
bzr add
bzr commit -m "Added filename with Unicode U+273C"
bzr push ../svn-co
This results in:
bzr: ERROR: exceptions.
Traceback (most recent call last):
File "/usr/lib/
return run_bzr(argv)
File "/usr/lib/
ret = run(*run_argv)
File "/usr/lib/
return self.run(
File "/usr/lib/
use_
File "/usr/lib/
tree_
File "/usr/lib/
self.
File "/usr/lib/
add_
File "/usr/lib/
(id, revid) = find_ids(entry, rootwc)
File "/usr/lib/
relpath)
File "/usr/lib/
entry = self.basis_
File "/usr/lib/
self.base_tree = SvnBasisTree(self)
File "/usr/lib/
workingtree
File "/usr/lib/
return self.fileid_
File "/usr/lib/
self.
File "/usr/lib/
for x in sorted(
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)
bzr 1.9 on python 2.5.2 (linux2)
arguments: ['/usr/bin/bzr', 'push', '../svn-co/']
encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'en_US.UTF-8'
plugins:
bisect /home/wjlanda/
bzrtools /usr/lib/
cvsps_import /usr/lib/
gtk /usr/lib/
launchpad /usr/lib/
loom /usr/lib/
rebase /usr/lib/
search /usr/lib/
stats /usr/lib/
svn /usr/lib/
upload /usr/lib/
*** Bazaar has encountered an internal error.
Please report a bug at https:/
including this traceback, and a description of what you
were doing when the error occurred.
Instead if you push to the respository it works:
bzr push ../svn-repos
This results in:
Committing to: /tmp/bzr-
added ✼
Committed revision 2.
Now trying to check it out works:
cd ..
bzr branch svn-repos bzr-branch2
bzr checkout svn-repos bzr-co-heavy
But trying to branch or checkout from a checkout fails, or trying to make a lightweight checkout both fail:
bzr branch svn-co bzr-branch3
bzr checkout svn-co bzr-branch3
bzr checkout --lightweight svn-repos bzr-co-light
When they fail, they all give:
bzr: ERROR: exceptions.
and a similar backtrace.
description: | updated |
Changed in bzr-svn: | |
status: | Fix Committed → Fix Released |
I can reproduce this in 0.4, but it's fixed in 0.5.