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

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

 



----- Original Message -----
From: Junio C Hamano
Date: 12/23/2010 10:17 AM
Nguyen Thai Ngoc Duy<pclouds@xxxxxxxxx>  writes:

On Wed, Dec 22, 2010 at 8:59 AM, Junio C Hamano<gitster@xxxxxxxxx>  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
--
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]