Re: [PATCH v3 2/4] path: optimize common dir checking
From: Duy Nguyen <hidden>
Date: 2016-06-15 23:06:12
On Sun, Aug 16, 2015 at 12:04 PM, David Turner [off-list ref] wrote:
Duy Nguyen [off-list ref] writes:quoted
On Thu, Aug 13, 2015 at 4:57 AM, David Turner [off-list ref]wrote:quoted
quoted
Instead of a linear search over common_list to check whether a path is common, use a trie. The trie search operates on path prefixes, and handles excludes.Just be careful that the given key from git_path is not normalized. I think you assume it is in the code, but I haven't read carefully. We could of course optimize for the good case: assume normalized and search, then fall back to explicit normalizing and search again.What does it mean for a key to be normalized? Do you mean normalized in terms of upper/lowercase on case-insensitive filesystems? If so, I think the assumption here is that this will be called with paths generated by git, which will always use the lowercase path.
Mostly about duplicated slashes, "abc//def" instead of "abc/def".
Technically nothing forbids git_path("refs/../refs/foo"), but that
would fool even current code.
--
Duy