Strange large push operation.
- From
- Brice Figureau <brice+git@daysofwonder.com>
- Date
- Dec 26, 2008, 12:23 UTC
- Message-ID
- <4954CCD6.5000105@daysofwonder.com>
Hi,
I'm a git user since about a year, but I can't say I'm really familiar with its internals. I am using git v 1.5.6.5
I have a quite large bare remote repository (around 1GiB, about 86k objects), and I have a clone on my development computer (which was cloned a long time ago). I use ssh to push/pull between those repositories.
About 2 months ago, we created a remote branch (let's call it 'branch') and pursued development on this branch and also on master, with a few regular merge points from master to 'branch'.
Two days ago, I wanted to start developping a new feature, and as such created a local branch from this branch, which we'll call 'newbranch'. I cherrypicked a couple of old (4 months) commits that were in another local branch, and then added more small commits (about 10 sloc of changes on it) on top of these.
Then I wanted to push this newbranch as a remote branch with: $ git push origin newbranch:refs/heads/newbranch
and obtained the following output: Counting objects: 12767, done. Compressing objects: 100% (3816/3816), done. writing objects: 8% (935/11682), 2.40 MiB | 324 KiB/s ^C
I stopped the push because I don't get why there are so much objects to send while the diff between newbranch and branch is only 5 small commits (and it obviously wants to push a large part of the history).
Is there a way to check what objects are sent to origin and why? What could be the cause of the issue? What's wrong with those repositories?
I tried to git gc both repositories, I also git fsck both repositories (and found 5 unreachables objects in the local one, should I care?). I also upgraded the remote git to latest 1.6.0.6 but this didn't change anything. I also tried --thin but that didn't change anything.
So what should I do to push only the changes between branch and newbranch?
Many thanks for any answer, -- Brice Figureau