[master] can't cope with NFD Unicode normalization on Mac OS X
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
Medium
|
Unassigned | ||
Breezy |
Triaged
|
Low
|
Unassigned |
Bug Description
The effect of this bug is that unicode filenames do not work (or at least don't generally work) with bzr on OS X, because the OS changes the unicode representation from what was passed in.
----
OS X 10.5.1 (HFS+, case-sensitive, journaled) / bzr 0.92.0, trying to 'bzr add' a folder named "süb" fails. This may be related to https:/
Example:
stravinsky:test_bzr nathan$ bzr add süb
added "süb"
added "süb"
bzr: ERROR: exceptions.
Traceback (most recent call last):
File "/Users/
return run_bzr(argv)
File "/Users/
ret = run(*run_argv)
File "/Users/
return self.run(
File "/Users/
no_recurse, action=action, save=not dry_run)
File "/Users/
return unbound(self, *args, **kwargs)
File "/Users/
_add_one(self, inv, parent_ie, directory, kind, action)
File "/Users/
entry = inv.make_
AttributeError: 'NoneType' object has no attribute 'file_id'
bzr 0.92.0 on python 2.5.1.final.0 (darwin)
arguments: ['/Users/
encoding: 'UTF-8', fsenc: 'utf-8', lang: 'en_US.UTF-8'
description: | updated |
tags: | added: mac unicode |
summary: |
- Cannot add NFD normalized Unicode file to repo + [master] can't cope with NFD Unicode normalization on Mac OS X |
Changed in bzr: | |
status: | Triaged → Confirmed |
Changed in brz: | |
status: | New → Triaged |
importance: | Undecided → Low |
Doing a recursive add on the enclosing directory results in a similar error, though the combining mark is printed using its Unicode address, instead of two escaped bytes, in the error messages:
stravinsky:test_bzr nathan$ bzr add KeyError: u'su\u0308b'
added "süb"
bzr: ERROR: exceptions.
Traceback (most recent call last): nathan/ lib/python/ bzrlib/ commands. py", line 802, in run_bzr_ catch_errors nathan/ lib/python/ bzrlib/ commands. py", line 758, in run_bzr nathan/ lib/python/ bzrlib/ commands. py", line 492, in run_argv_aliases **all_cmd_ args) nathan/ lib/python/ bzrlib/ builtins. py", line 384, in run nathan/ lib/python/ bzrlib/ mutabletree. py", line 51, in tree_write_locked nathan/ lib/python/ bzrlib/ mutabletree. py", line 390, in smart_add ie.children[ directory. base_path]
File "/Users/
return run_bzr(argv)
File "/Users/
ret = run(*run_argv)
File "/Users/
return self.run(
File "/Users/
no_recurse, action=action, save=not dry_run)
File "/Users/
return unbound(self, *args, **kwargs)
File "/Users/
this_ie = parent_
KeyError: u'su\u0308b'
bzr 0.92.0 on python 2.5.1.final.0 (darwin) nathan/ bin/bzr' , 'add']
arguments: ['/Users/
encoding: 'UTF-8', fsenc: 'utf-8', lang: 'en_US.UTF-8'