git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Q: description of file name encoding approach used by git

From
CPConstantine Plotnikov <constantine.plotnikov@gmail.com>
Date
Feb 11, 2009, 11:56 UTC
Message-ID
<85647ef50902110356l19870259t9de22fd8827ac144@mail.gmail.com>

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

Next: Jay Soffian
Message 1 of 2 in “Q: description of file name encoding approach used by git”
  1. Constantine PlotnikovFeb 11, 2009
  2. Jay SoffianFeb 11, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.