Any plans to fix Unicode normalization issues on Mac OS X before bzr 2?

Martin Pool mbp at sourcefrog.net
Wed Jul 22 04:41:19 BST 2009


2009/7/22 Jean-Francois Roy <bahamut at macstorm.org>:
> The bugs for unicode normalization "awareness" have been open for almost 2
> years now. Is anyone even considering fixing them? With bzr 2 coming and the
> 2a format practically finalized, it would be a shame to miss on addressing
> this very real issue because of required format changes (possibly) being
> rejected because they came in too late. I'm somewhat interested in the issue
> because I speak French and do have files with non-ASCII characters and have
> came across this issue with other version control systems (namely svn); I
> was kind of hoping bzr could improve on that.
>
> The bugs https://bugs.launchpad.net/bzr/+bug/172383 and
> https://bugs.launchpad.net/bzr/+bug/102935 seem to track the issue, and
> although they have some good information, they don't have much discussion
> for possible practical solutions. I'm not too familiar with Unicode, so I am
> not sure what the correct approach is, beyond that it seems bzr should
> assume precomposed form, and on Mac OS X have an additional layer to
> decompose characters when writing their name out.

To start with the bad news: no, I don't think they will be fixed for
2.0.  Of course I would like this fixed, but I wouldn't slip 2.0 for
the sake of them, and I wouldn't ask Canonical people to spend work
time on them ahead of other bugs targetted to 2.0.

That said, if someone did come up with a fix that passed review, I
wouldn't specifically block it.  (Even if it bumped the format it's
possible we could land it, but let's not spend too much time
discussing hypotheticals.)

There has been a fair amount of discussion of this topic, particularly
by John and Vincent.

> Perhaps some sort of content filter mechanism could be used to shield bzr
> from the idiosyncrasies of Unicode composition. One possible idea would be
> to use extended attributes to store the name of the file as it appears in
> the branch index and use that instead of the file system name for all
> operations. This would completely shield bzr from any transformation Mac OS
> X might do to the file name, while ensuring the information follows the file
> diligently. This would also (most likely) work without any modifications to
> existing branch formats, and may only require (this is a guess) a checkout
> format change.

I don't think this would be 'content filtering' as we currently use
the term, which is for the contents of files, but yes, some kind of
translation seems to make sense.  I don't think it would necessarily
need a format bump, as the dirstate and committed inventories are
already defined to be unicode.

You can probably find some discussion of this in the list history so I
won't try to reinvent it here myself.  Probably a good next step would
be to have a specific proposal in one of those bugs.

-- 
Martin <http://launchpad.net/~mbp/>



More information about the bazaar mailing list