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

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

 



On Fri, Dec 24, 2010 at 11:53 PM, Joshua Jensen
<jjensen@xxxxxxxxxxxxxxxxx> wrote:
> As I recall (I'd have to examine other unsubmitted case insensitivity
> patches), merely adding case insensitivity support to ce_path_match() is not
> enough. ÂThe cache is stored alphabetically in a case sensitive fashion.
> ÂThat means filenames starting with 'A' are stored in a completely different
> place than filenames starting with 'a'. ÂCertain parts of the code call
> ce_path_match() and then walk the cache sequentially for possible matches.
> ÂIt aborts long before hitting the 'a' filename.

Hmm.. what you describe sounds like never_interesting optimization in
tree_entry_interesting(). By the way do you still remember the parts
that it walk sequentially after ce_path_match() is matched?

> I have a patch that appears to resolve most of these issues. ÂFor
> core.ignorecase=true, when the cache is read, it is re-sorted alphabetically
> in a case insensitive manner. Âce_path_match() still needs fixes, but the
> rest were covered by the case insensitive cache. Â'A' and 'a' are not
> interleaved, and the combination of sequential and binary(?) searches Git
> uses are successful. ÂFinally, when the cache is written, I re-sort the
> cache in a case insensitive fashion.

Resorting the cache is quite risky. Many parts of git depend on the
cache being sorted as it is now. Also if you go this way, then you
will also need to resort tree objects (git-log walks them directly).
-- 
Duy
--
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]