Re: Errors cloning large repo
- From
Linus Torvalds <torvalds@linux-foundation.org>
- Date
- Mar 10, 2007, 02:03 UTC
- Message-ID
- <Pine.LNX.4.64.0703091800110.10832@woody.linux-foundation.org>
- In-Reply-To
- <Pine.LNX.4.64.0703091641460.10832@woody.linux-foundation.org>
On Fri, 9 Mar 2007, Linus Torvalds wrote:
Show 9 quoted lines
> > > > For some reason git add . swallowed the whole thing > > but git commit did not and I had to split it up. I trimmed the tree a bit > > since then by removing c & c++ files ;-) > > Ok, that's a bit surprising, since "git commit" actually should do less > than "git add .", but it's entirely possible that just the status message > generation ends up doing strange things for a repository with that many > files in it.
Ahhh. Found it.
It's indeed "git commit" that takes tons of memory, but for all the wrong reasons. It does a "git diff-tree" to generate the diffstat, and *that* is extremely expensive:
git-diff-tree --shortstat --summary --root --no-commit-id HEAD --
I suspect we shouldn't bother with the diffstat for the initial commit. Just removing "--root" migth be sufficient.
Linus