Jeff King <p...@peff.net> writes: > master:a:a:a:a:a:a:a:a:a:a:a > > I think there are 2^(n-1) possible paths (each colon can be a real colon > or a slash). Though I guess if you walk the trees as you go, you only > have to examine at most "n" paths to find the first-level tree, and then > at most "n-1" paths at the second level, and so on. > > Unless you really do have ambiguous trees, in which case you have to > walk down multiple paths. > > It certainly would not be the first combinatoric explosion you can > convince Git to perform. But it does seem like a lot of complication for > something as simple as path lookups.
That is true, and we may want to avoid the implementation complexity of the backtracking name resolution. If you are on the other hand worried about the runtime cost, it will be an issue to begin with only for those who do "git grep -e pattern HEAD:t/perf", which is an unnatural way to do "git grep -e pattern HEAD -- t/perf", and the output from the latter won't have such an issue, so...