Why does git protocol produce more objects than git-http-backend?

Git

Git Problem Overview


I'm using Git 1.7.1 configured with git-http-backend (Smart HTTP). I wanted to see how much faster this was compared to the git:// protocol, since now they are supposed to be on par.

Turns out git:// protocol is compressing more objects (33,229 vs 21,193) for the exact same repo (even verified client side), and thus creating a packfile that's about 30MB bigger for my project.

Is there some reason why git:// protocol needs more objects?

git:// Output

remote: Counting objects: 44510, done.
remote: Compressing objects: 100% (33229/33229), done.
Receiving objects: 100% (44510/44510), 124.07 MiB | 2.84 MiB/s, done.
remote: Total 44510 (delta 22755), reused 15866 (delta 7516)
Resolving deltas: 100% (22755/22755), done.

http:// Output

remote: Counting objects: 24299, done.
remote: Compressing objects: 100% (21931/21931), done.
remote: Total 24299 (delta 7517), reused 0 (delta 0)
Receiving objects: 100% (24299/24299), 95.95 MiB | 2.41 MiB/s, done.
Resolving deltas: 100% (7517/7517), done.

Git Solutions


Solution 1 - Git

May be: via git you download files from all branches and you can quickly switch between them, via http you download only master branch.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionoccaslView Question on Stackoverflow
Solution 1 - GitalterpubView Answer on Stackoverflow