Jeff King <peff@xxxxxxxx> writes: > On Thu, Dec 20, 2012 at 08:28:57AM +0700, Nguyen Thai Ngoc Duy wrote: > >> > So I think this is a nice, simple approach for sites that want it, and >> > noglob magic can come later (and will not be any harder to implement as >> > a result of this patch). >> >> Any chance to make use of nd/pathspec-wildcard? It changes the same >> code path in match_one. If you base on top of nd/pathspec-wildcard, >> all you have to do is assign nowildcard_len to len (i.e. no wildcard >> part). > > I'd rather keep it separate for now. One, just because they really are > independent topics, and two, because I am actually back-porting it for > GitHub (we are fairly conservative about upgrading our backend git > versions, as most of the interesting stuff happens on the client side; I > cherry-pick critical patches with no regard to the release cycle). > > And the resolution is pretty trivial, too. It looks like this: > > diff --cc dir.c > index 5c0e5f6,03ff36b..81cb439 > --- a/dir.c > +++ b/dir.c > @@@ -1456,14 -1433,10 +1460,18 @@@ int init_pathspec(struct pathspec *path > > item->match = path; > item->len = strlen(path); > - item->nowildcard_len = simple_length(path); > - item->use_wildcard = !limit_pathspec_to_literal() && > - !no_wildcard(path); > - if (item->use_wildcard) > - pathspec->has_wildcard = 1; > + item->flags = 0; > - if (item->nowildcard_len < item->len) { > - pathspec->has_wildcard = 1; > - if (path[item->nowildcard_len] == '*' && > - no_wildcard(path + item->nowildcard_len + 1)) > - item->flags |= PATHSPEC_ONESTAR; > ++ if (limit_pathspec_to_literal()) > ++ item->nowildcard_len = item->len; > ++ else { > ++ item->nowildcard_len = simple_length(path); > ++ if (item->nowildcard_len < item->len) { > ++ pathspec->has_wildcard = 1; > ++ if (path[item->nowildcard_len] == '*' && > ++ no_wildcard(path + item->nowildcard_len + 1)) > ++ item->flags |= PATHSPEC_ONESTAR; > ++ } > + } > } > > qsort(pathspec->items, pathspec->nr, Hmph. I thought that returning the length without any "stop at glob special" trick from simple_length() would be a simpler resolution. That is what is queued at the tip of 'pu', anyway. -- 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