Re: git on MacOSX and files with decomposed utf-8 file names

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday 17 January 2008, Junio C Hamano wrote:
> Wincent Colaiuta <win@xxxxxxxxxxx> writes:
> 
> > If this is really just a platform-specific hack, can we use platform- 
> > specific code to do the normalization?
> 
> Unfortunately, I do not think this can be a platform-specific
> hack.
> 
> If a project wants to be usable on both sane and insane
> filesystems, people on platforms whose filesystems treat "foo"
> and "Foo" as two distinct pathnames (and "Ma<UMLAUT>rchen" and
> "M<A-with-UMLAUT>rchen" as two distinct ones) need to be
> prevented from creating both in their tree objects at the same
> time.  Once you create two pathnames xt_connmark.c and
> xt_CONNMARK.c in the same tree object in your project, people on
> case insensitive filesystems cannot work with your project (you
> cannot check out the kernel source tree and work on it on vfat).

IMHO, support for insane filesystems should be split into two parts:

1. A git config setting (probably in .gitattributes) that is enabled
   by the project to prevent anyone from committing files that would
   cause problems on insane filesystems. This setting must be enabled
   for everybody in the project (which is why it cannot easily be
   solved by the current hooks infrastructure which is per-repo only).

2. A platform-specific hack that detects whenever you're about to
   check out a problematic filename on an insane filesystem.
   The hack should either warn or (probably better) FAIL to check out
   the problematic file(s) (with an appropriate error message
   pointing at the setting in (1)).

AFAICS, _both_ are needed in order to solve this problem properly.


Have fun!

...Johan

-- 
Johan Herland, <johan@xxxxxxxxxxx>
www.herland.net
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux