Subject: Re: What's cooking in git.git (Dec 2010, #06; Tue, 21)

From: Joshua Jensen <[email-masked]>
Date: Thu, 23 Dec 2010 16:35:57 -0700

----- Original Message -----
From: Junio C Hamano
Date: 12/23/2010 10:17 AM
> Nguyen Thai Ngoc Duy<[email-masked]>  writes:
>
>> On Wed, Dec 22, 2010 at 8:59 AM, Junio C Hamano<[email-masked]>  wrote:
>> With jj/icase-directory merged to master, match_pathspec() and
>> match_pathspec_depth() now diverse again.
>>
>> When I wrote match_pathspec_depth(), I assumed that match_pathspec()
>> would not change much and I would have more time for converting the
>> rest of git to use match_*_depth(). Looks like I need to add case
>> insensitive matching to struct pathspec and friends then remove
>> match_pathspec() in this series too. At least if somebody changes
>> match_pathspec() again, it would cause a conflict so I can catch it.
> While this topic is something I have long wanted to see, I have started
> feeling that this needs to cook a bit longer than be in the next release.
> So perhaps the best course of action might be to rebase the series once
> after the 1.7.4 feature freeze, cook it in 'next' for a while and make it
> part of the release after that.  I think at that point we may probably
> want to have other changes that are not strictly backward compatible but
> their incompatibilities do not matter in practice (e.g. cquoting pathspecs
> in the attributes file comes to mind, but I am sure there will be other
> changes that people wanted to have but we held them off due to worries on
> compatibility).
>
> What do you think?
Certainly, you know what's best overall for Git.

Having said that, I have had 100 people using the jj/icase-directory 
series on Windows daily for 4 months now without issue.  Prior to that, 
a majority of the series had been used for a full year by a dozen 
people.  In any case, the improvement on non-case sensitive file systems 
is the difference between night and day, and the series has helped 
prevent a number of messes that occurred without it (git add readme.txt 
and git add Readme.txt, for example... ugh...).

More than Windows, this series also affects Mac OS X in a positive 
manner, though the case sensitivity problems can be considered worse.  
When you change directories at the command line, the command line 
retains the case you used to change directory, and then Git uses that 
case as the relative path into the repository.  Ugh... this is different 
than on Windows where the file system's directory case is retained at 
the Command Prompt as you change directories.  (Cygwin actually appears 
to have the problem, too, but MinGW, what msysGit is built upon, does not.)

The Mac OS X issue listed above is not a reason not to publish the 
series, though, as the fixes necessary to make that work are in 
completely different areas in Git than the current jj/icase-directory 
series.

Finally, I'm sitting on a bunch of other case sensitivity refinements, 
but I'd like to get one series published before evolving this more.  I'd 
like to get the other ones out there for discussion, but they build on 
the current series.

In reference to above, where is match_pathspec_depth()?  I can only find 
match_pathspec().

Josh