Hmm.. Try harder to find the common commits in git protocol?
- From
Linus Torvalds <torvalds@linux-foundation.org>
- Date
- Apr 28, 2008, 16:41 UTC
- Message-ID
- <alpine.LFD.1.10.0804280936080.3119@woody.linux-foundation.org>
So we've had a huge number of merges in this last kernel merge window, and as a result it seems that a number of the pulls I do get way too many objects, because the git protocol doesn't try hard enough to find the minimal set of common commits.
Example from today:
remote: Counting objects: 50084, done. remote: Compressing objects: 100% (6489/6489), done. remote: Total 43343 (delta 37381), reused 42777 (delta 36836) Receiving objects: 100% (43343/43343), 8.85 MiB | 144 KiB/s, done. Resolving deltas: 100% (37381/37381), completed with 5097 local objects. Merge made by recursive. kernel/hrtimer.c | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-)
git rev-list --objects ORIG_HEAD.. | wc -l 7
ie it downloaded 43343 objects totalling almost 9MB of data, even though it actually only needed seven objects. In fact, I guess three of the seven new objects were due to the merge (commit, top-level tree, and 'kernel' tree), so only four objects actually came from the source repository.
I haven't thought about the why's so much (because I'm busy merging), but I thought I'd mention this in case somebody else has already looked at it.
Linus