Skip to contentSkip to conversation

'git gc' always run, on old kernel repo?

DISCUSSION Jeff Garzik 3 participants 6 messages Feb 28, 2008

lore
Share & tools
lore
#0 lore raw

In order to apply a kernel patch diff'd against an older kernel, I ran

	git checkout -b tmp v2.6.23
	git-am --signoff --utf8 /g/tmp/mbox

The patch applied successfully, but each time I run this, it starts an automated 'git gc' run... even if there is nothing useful to gc:

Quoted 7 lines

[jgarzik@pretzel netdev-2.6]$ git-am --signoff --utf8 /g/tmp/mbox Applying Add support for HT1100 SATA controller - sent from evolution Auto packing your repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 1, done.
Writing objects: 100% (1/1), done.
Total 1 (delta 0), reused 0 (delta 0)
warning: There are too many unreachable loose objects; run 'git prune' to remove them.

IMO there is a broken hueristic in there somewhere... I regularly run 'git gc' on my repos...

Jeff

#1 lore raw
Quoted 9 lines · Jeff Garzik
Quoted 7 lines

[jgarzik@pretzel netdev-2.6]$ git-am --signoff --utf8 /g/tmp/mbox Applying Add support for HT1100 SATA controller - sent from evolution Auto packing your repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 1, done.
Writing objects: 100% (1/1), done.
Total 1 (delta 0), reused 0 (delta 0)
warning: There are too many unreachable loose objects; run 'git prune' to remove them.

IMO there is a broken hueristic in there somewhere... I regularly run 'git gc' on my repos...

Follow-up... this is already becoming a PITA.

I am going through and rebasing multiple repos in the same repository... and it keeps running 'git gc' on each branch! grrrr.

Step 1:
pull "../linux-2.6" into master branch of local repo. this repo was created with "--reference". It _might_ be reasonable to expect 'git gc' to be run:

Quoted 10 lines

[jgarzik@pretzel libata-dev]$ git pull ../linux-2.6/
Updating bfa274e..7704a8b
Fast forward
Auto packing your repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 462, done.
Compressing objects: 100% (333/333), done.
Writing objects: 100% (462/462), done.
Total 462 (delta 345), reused 176 (delta 129)
warning: There are too many unreachable loose objects; run 'git prune' to remove them.

Step 2:
In the same repo, rebase a branch (contains a single changeset), immediately following step #1:

Quoted 11 lines

[jgarzik@pretzel libata-dev]$ git branch
ALL
NEXT
* master
mv-ahci-pata
new-eh
sii-lbt
[jgarzik@pretzel libata-dev]$ git-checkout sii-lbt && git-rebase master Switched to branch "sii-lbt"
First, rewinding head to replay your work on top of it...
HEAD is now at 7704a8b... Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6

Quoted 8 lines

Applying [libata] sata_sil: Turn on Large Block Transfer (LBT) feature Auto packing your repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 4, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), done.
Total 4 (delta 0), reused 0 (delta 0)
warning: There are too many unreachable loose objects; run 'git prune' to remove them.

Step 3:
Ditto, a second rebase in the same repo, immediately following step #2:

Quoted 4 lines

[jgarzik@pretzel libata-dev]$ git-checkout new-eh && git-rebase master Switched to branch "new-eh"
First, rewinding head to replay your work on top of it...
HEAD is now at 7704a8b... Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6

Quoted 8 lines

Applying [libata #new-eh] sata_sx4: convert to new EH
Auto packing your repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 4, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), done.
Total 4 (delta 0), reused 0 (delta 0)
warning: There are too many unreachable loose objects; run 'git prune' to remove them.

Step 4:
Ditto, a third rebase in the same repo, immediately following step #3:

Quoted 4 lines

[jgarzik@pretzel libata-dev]$ git-checkout mv-ahci-pata && git-rebase master Switched to branch "mv-ahci-pata"
First, rewinding head to replay your work on top of it...
HEAD is now at 7704a8b... Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6

Quoted 8 lines

Applying [libata #mv-ahci-pata] ahci: add rough draft Marvell PATA support Auto packing your repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 5, done.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), done.
Total 5 (delta 0), reused 0 (delta 0)
warning: There are too many unreachable loose objects; run 'git prune' to remove them.

Will the 'git gc' never end???

Jeff

#2 lore raw
Quoted 4 lines · Jeff Garzik
Quoted 2 lines

warning: There are too many unreachable loose objects; run 'git prune' to remove them.

Will the 'git gc' never end???

What happens if you try to run "git prune"?

Nicolas

#3 lore raw
Quoted 7 lines · Nicolas Pitre
Quoted 3 lines · Jeff Garzik
Quoted 2 lines

warning: There are too many unreachable loose objects; run 'git prune' to remove them.

Will the 'git gc' never end???

What happens if you try to run "git prune"?

Same behavior.

FWIW I run "git prune" immediately prior to "git push", _every_ time I push to master.kernel.org (git.kernel.org).

Jeff

#4 lore raw
In reply to Jeff Garzik
Quoted 1 line · Jeff Garzik

Will the 'git gc' never end???

sudo ln -sf /usr/bin/git-gc /bin/echo

(-;

-- Asheesh.

Signature · 2 lines
Maternity pay?	Now every Tom, Dick and Harry will get pregnant.
		-- Malcolm Smith
#5 lore raw
Quoted 5 lines · Asheesh Laroia
Quoted 1 line · Jeff Garzik

Will the 'git gc' never end???

sudo ln -sf /usr/bin/git-gc /bin/echo

Er, the other way around. Must have had too much crack this morning.

*blushes*

-- Asheesh.

Signature · 1 line
Your boss is a few sandwiches short of a picnic.