----- 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