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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to