threads / discuss / 17722

Q: description of file name encoding approach used by git

Subject: Q: description of file name encoding approach used by git

## tl;dr

2 messages between Feb 11, 2009 and Feb 11, 2009.

replies: 1people: 2as markdown or json

Constantine Plotnikov· Feb 11, 2009, 11:56 UTC · lore

I'm interested if there is some document that specifies the approach of encoding non-ASCII file names used by the git and related issues. I'm particularly interested in cross-platform issues, since I'm writing plugin for cross-platform tool.

My understanding based on previous discussions of the issue is that GIT saves file names as bytes in the tree objects without specifying actual encoding used. And there will be problem if different clients use different system encoding.

The list of issues known to me is:
1. All Linux and Unix machines that use the same git repository should
use the same encoding (ru_RU.KOI-8 and ru_RU.UTF-8 are not
compatible).
2. On windows UTF-8 codepage should be specified for msys git in order
to force it using UTF-8 if any cross-platform support is wanted. (I do
not known about cygwin git).
3. As I understand, there is an unresolved problem with Mac OSX HFS+
case insensitive file system due to file name normalization.
4. Git log seems to ignore encoding specified on the command line when
printing file names (for example in case of --name-status).

Are these issues still open? Are there other issues?

Regards, Constantine

Jay Soffian· Feb 11, 2009, 16:08 UTC · re: Constantine Plotnikov · lore

Re: Q: description of file name encoding approach used by git

On Wed, Feb 11, 2009 at 6:56 AM, Constantine Plotnikov <constantine.plotnikov@gmail.com> wrote:

> 3. As I understand, there is an unresolved problem with Mac OSX HFS+
> case insensitive file system due to file name normalization.

HFS+ can be configured to be case-sensitive, though it is not by default. However, this is only a problem if the repo contains > 1 filenames that collide in a case-insensitive filesystem, since HFS+ is case-preserving.

The larger HFS+ problem is that it performs Unicode NFD normalization, which is unfortunately lossy. There are some good links about the topic here: https://bugs.launchpad.net/bzr/+bug/172383

j.

← back to recent threads