git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Shawn Pearce <spearce@spearce.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: Johan Herland <johan@herland.net>, git@vger.kernel.org
Subject: Re: RFD: Handling case-colliding filenames on case-insensitive filesystems
Date: Wed, 23 Feb 2011 11:01:03 -0800	[thread overview]
Message-ID: <AANLkTi=gAM3LGwU47_EkENerZeKmjwuhWhpHZJGSiW=n@mail.gmail.com> (raw)
In-Reply-To: <7vmxlm8trt.fsf@alter.siamese.dyndns.org>

On Wed, Feb 23, 2011 at 10:56, Junio C Hamano <gitster@pobox.com> wrote:
> Johan Herland <johan@herland.net> writes:
>
>> Are there better suggestions on how to deal with this?
>
> Just from the top off my head, perhaps you can go to the same route as
> symbolic link support on filesystems that are not symlink-capable?

I don't know how that helps here Junio. On those systems we write a
text file holding the symlink contents. That text file name is at
least still unique in the working directory.


Perhaps instead the "colliding file" becomes a directory that stores
all of the files below it, each with a unique name and a table of
contents, e.g.:

  foo.txt/

    git-contents:
      file-A foo.TXT
      file-B FOO.txt

    file-A:
      ... the contents of foo.TXT ..

    file-B:
      ... the contents of FOO.txt ..

It would be hard to work with in the index, and the project's build
system might fail, but at least the user can edit both files using
normal tools in the working tree, and can see which one is which using
the magic git-contents file.

This is such an odd corner case though, we need really good tests for
it, because it won't come up in daily usage very often. :-(

-- 
Shawn.

  reply	other threads:[~2011-02-23 19:01 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-23 17:11 RFD: Handling case-colliding filenames on case-insensitive filesystems Johan Herland
2011-02-23 18:56 ` Junio C Hamano
2011-02-23 19:01   ` Shawn Pearce [this message]
2011-02-23 19:27     ` Junio C Hamano
2011-02-24  0:58       ` Johan Herland
2011-02-24  1:26         ` Junio C Hamano
2011-02-24  8:50           ` Johan Herland
2011-02-23 19:07 ` Jay Soffian
2011-02-23 19:17   ` Matthieu Moy
2011-02-23 22:52   ` Marc Branchaud
2011-02-23 23:09     ` Greg Troxel
2011-02-24  0:30 ` Johan Herland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='AANLkTi=gAM3LGwU47_EkENerZeKmjwuhWhpHZJGSiW=n@mail.gmail.com' \
    --to=spearce@spearce.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=johan@herland.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).