Re: RFC: git cat-file --follow-symlinks?
- From
Jeff King <peff@peff.net>
- Date
- Apr 30, 2015, 18:49 UTC
- Message-ID
- <20150430184944.GA3661@peff.net>
- In-Reply-To
- <1430419490.22711.30.camel@ubuntu>
On Thu, Apr 30, 2015 at 11:44:50AM -0700, David Turner wrote:
Show 5 quoted lines
> > 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