gitweb/test/Märchen has an identity crisis

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

gitweb/test/Märchen has an identity crisis

From: Geert Bosch <hidden>
Date: 2016-06-15 22:43:03

In the git repository, after git checkout -f:
potomac:~/git%git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
...
#       gitweb/test/Märchen

potomac:~/git%rm gitweb/test/Ma\314\210rchen
potomac:~/git%git status
# On branch master
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#
#       deleted:    gitweb/test/Märchen

Aaaarghh!! There seems something inconsistent in the encoding
of the ä letter that confuses git on my Mac OS X system.
My environment has LANG=en_US.UTF-8 set, in case that matters.

Filename completion results in Ma\314\210rchen, but the index
encodes it as M\303\244rchen:
0107272   g   i   t   w   e   b   /   t   e   s   t   /   M   ?   ?   r
         147 151 164 167 145 142 057 164 145 163 164 057 115 303 244 162

The filesystem seems to be fine with either:
potomac:~/git%ls -l gitweb/test/Ma\314\210rchen gitweb/test/M\303 
\244rchen
-rw-r--r-- 1 bosch staff 17 2007-04-09 14:51 gitweb/test/Märchen
-rw-r--r-- 1 bosch staff 17 2007-04-09 14:51 gitweb/test/Märchen

Anybody has insights in what causes this? Thanks in advance!

   -Geert

Re: gitweb/test/Märchen has an identity crisis

From: Shawn O. Pearce <hidden>
Date: 2016-06-15 22:43:03

Geert Bosch [off-list ref] wrote:
# On branch master
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#
#       deleted:    gitweb/test/Märchen

Aaaarghh!! There seems something inconsistent in the encoding
of the ä letter that confuses git on my Mac OS X system.
My environment has LANG=en_US.UTF-8 set, in case that matters.
This has been discussed on the list in the past.  Mac OS X does a bad
thing here; it is normalizating the UTF-8 encoding in a different
way than Git supplied the encoding.  This is apparently done to
support its other bad feature, case insensitive filesystems.  ;-)

Basically what Git gave Mac OS X during an open() syscall is not
what it gets back during a readdir() because the filesystem changed
the byte sequence on us.  Yea, not cute.

I think I stuck the byte sequence Mac OS X is supplying into my
.git/info/exclude and the problem went away...

-- 
Shawn.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help