On Thu, Apr 30, 2015 at 11:44:50AM -0700, David Turner wrote: > > git ls-tree HEAD -- BUILD ? > > This does not actually seem to work (even with -r); it only recurses > into directories that are named BUILD, rather than being equivalent to > git ls-tree -r HEAD |grep /BUILD$. Ah, I thought that was what you wanted (to find specific files, not a pattern). I think `ls-tree` doesn't understand our normal pathspecs, for historical reasons. > Also, BUILD files are scattered throughout the tree, so the entire tree > would still need to be traversed. At present, our monorepo is not quite > large enough for this to matter (a full ls-tree only takes me 0.6s), but > it is growing. But aren't you asking git to do that internally? I.e., it can limit the traversal for a prefix-match, but it cannot do so for an arbitrary filename. It has to open every tree. So the extra expense is really just the I/O over the pipe. That's not optimal, but it is a constant factor slowdown from what git would do internally. -Peff -- 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