On Tue, Jan 29, 2013 at 12:33 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Have you considered if it may be helpful to have a :(literal) magic > (or any magic in general) that applies only to the first N > characters of the pathspec pattern? Not user-driven. But the prefix part is :(literal)-applied. :(glob) is currently implemented this way, using nowildcard_len as you mentioned. :(icase) is more complicated and does not follow yet. > I personally think we do not need to support something like this: > > prefix=$(git rev-parse --show-prefix) > n=${#prefix} > pathspec=":(literal-$n)$prefix$1" > > but other aspiring Porcelain script writers may disagree and would > want to have it. We can always solve it by giving them an easy and > uniform way to get the glob-quoted version of prefix to solve this > particular issue, i.e. > > prefixq=$(git rev-parse --show-prefix-glob-quoted) > pathspec="$prefixq$1" > > but magic that applies only to a substring may have other uses. Yeah, that simplifies things. Supporting applying magic over just parts of the pathspec pattern sounds complex. Just a small modification. That rev-parse needs to look at "$1" as well. If :(literal) is already specified, glob quoting will backfire. The user script can deal with that, but it's harder (e.g. parsing magic from scripts and deal with magic combination) than letting rev-parse does it. I've done some form of this already, for supporting add--interactive. git-add prefixes the pathspec but keeps all the magic in place, before passing pathspec to add--interactive. But I missed the quoting point you mentioned above. I probably need de-quoting the prefix as well. Many optimizations stop short at the sign of any glob symbols, including backslash. This could be a new task for wildmatch. -- 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