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

Re: filenames in repo are in CP1251; I have linux and UTF-8

From
Dmitry Potapov <dpotapov@gmail.com>
Date
Aug 2, 2011, 13:02 UTC
Message-ID
<CAHkcoti0G9gfHG3oiTXT0Cd3t8nnb_be90Zw-YPrjPECsR+jqQ@mail.gmail.com>
In-Reply-To
<1167098359.20110802115414@gmail.com>
Hi!
On Tue, Aug 2, 2011 at 11:54 AM, Ilya Basin <basinilya@gmail.com> wrote:
>
> Unlike on Cygwin, LANG has no effect for git filenames on Linux. Good
> thing, there's no conversion to unicode, so files aren't lost at
> checkout.

LANG has no effect on open() or other system functions on Linux, so all filenames are created as they were stored in Git, in your case, it is CP1251.

AFAIK, it should not be difficult to configure CP1251 on Linux. You generate the required locale and then start xterm with this locale and specifying some CP1251 font.

I have never done it before, but the following steps seem to work:

# generate CP1251 sudo localedef -c -i ru_RU -f CP1251 ru_RU.CP1251

# make sure that it was generated # you should see ru_RU.cp1251 in the output locale -a | grep ru_RU

# start xterm LANG=ru_RU.cp1251 xterm -fn '-monotype-courier new-semilight-r-normal--0-0-0-0-c-0-microsoft-cp1251' &

You can try another font. See the output of xlsfonts:
  xlsfonts | grep -i cp1251
>
> Question: is there a way to tell git on Linux to use UTF-8 filenames
> for the working tree, while storing them in CP1251?

The short answer is no. A more detail answer is that there was a series of patches that should allow filename conversation:

http://article.gmane.org/gmane.comp.version-control.git/119224

but a proper implementation turned out to be very invasive and no one seems to care about it very deeply, so it was dropped. See details here:

http://article.gmane.org/gmane.comp.version-control.git/122860
Dmitry
Previous: Ilya Basin
Message 2 of 2 in “filenames in repo are in CP1251; I have linux and UTF-8”
  1. Ilya BasinAug 2, 2011
  2. Dmitry PotapovAug 2, 2011

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.