Unicode support for non-unicode locales

Densetsu no Ero-sennin densetsu.no.ero.sennin at gmail.com
Mon Oct 8 15:43:20 UTC 2007


On 8 October 2007 (Mon), Matt Mackall wrote:
> Does it make the corresponding changes to your project's Makefile,
> etc., as well? What happens if someone does a checkout in an
> ASCII/latin-1 locale?
>
> Filenames, just like their contents, are the users' data. Our mandate
> is to preserve that data exactly.

You are perfectly right here. The question is, what exactly has to be 
preserved. I mean, filenames are not just byte sequences, but rather 
sequences of letters, digits and other symbols, which are encoded in 
different byte sequences, depending on the locale. By not taking this into 
account, Mercurial CORRUPTS the data and produces incorrect filenames in
some cases.

As for Makefiles, it is make's fault, not Mercurial's. Make is simply not 
designed to handle Unicode and therefore is subject to fail on non-ASCII 
filenames. The workaround is restricting filenames to ASCII. But there is no 
point in not supporting Unicode in Mercurial just because make and other 
tools do not support it.



More information about the Mercurial-devel mailing list