Re: On pathnames
From: Sean <hidden>
Date: 2016-06-15 22:44:08
On Thu, 24 Jan 2008 13:02:54 -0800 Junio C Hamano [off-list ref] wrote:
One bad issue during development is that we cannot sanely emulate case folding behaviour on non case-folding filesystems without wrapping open(2), lstat(2), and friends, because of the assumption we made above in (2) where we defined the term "case folding". This means that the codepath to deal with case folding filesystems inevitably are harder to debug.
All true. Though Linux support for creating and using HFS+ volumes seems like it may be helpful. Trying the test case patch[*] posted by Mitch Tishmack showed the problem here. The only slightly strange thing was that there didn't seem to be an issue with the gitweb/test/Märchen file after cloning to the HFS volume. Sean. [*] $ dd bs=1M count=250 < /dev/zero > hfs_vol 262144000 bytes (262 MB) copied, 6.12703 s, 42.8 MB/s $ /sbin/mkfs.hfsplus -v Test -n c=4096,e=1024 hfs_vol Initialized hfs_vol as a 250 MB HFS Plus volume $ mkdir hfs $ sudo mount -t hfsplus -o loop hfs_vol hfs $ sudo chmod a+rwx hfs $ cd hfs $ git clone ~/local/sources/git Initialized empty Git repository in ~/hfs/git/.git/ 49486 blocks $ cd git $ make ... $ cd t $ git apply ~/Mitch_Tishmack.patch $ ./t0060-normalization.sh * FAIL 1: setup touch ä && git add ä && git commit -m "initial" git tag initial && git checkout -b topic && git mv ä tmp && git mv tmp ä && git commit -m "rename" && git checkout -f master * FAIL 2: rename (silent normalization) git mv ä ä && git commit -m "rename" * FAIL 3: merge (silent normalization) git reset --hard initial && git merge topic * failed 3 among 3 test(s) Sean.