threads / discuss / 12371

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

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

## tl;dr

6 messages between Feb 28, 2008 and Feb 28, 2008.

replies: 5people: 3as markdown or json

Jeff Garzik· Feb 28, 2008, 19:57 UTC · lore
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:

Show 8 quoted 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
Jeff Garzik· Feb 28, 2008, 20:13 UTC · re: Jeff Garzik · lore

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

Jeff Garzik wrote:
Show 12 quoted 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:

Show 10 quoted 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:

Show 19 quoted 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
> 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:

Show 12 quoted 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
> 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:

Show 12 quoted 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
> 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
Asheesh Laroia· Feb 28, 2008, 20:32 UTC · re: Jeff Garzik · lore

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

On Thu, 28 Feb 2008, Jeff Garzik wrote:
> Will the 'git gc' never end???
sudo ln -sf /usr/bin/git-gc /bin/echo
(-;
-- Asheesh.
-- 
Maternity pay?	Now every Tom, Dick and Harry will get pregnant.
 		-- Malcolm Smith
Asheesh Laroia· Feb 28, 2008, 20:34 UTC · re: Asheesh Laroia · lore

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

On Thu, 28 Feb 2008, Asheesh Laroia wrote:
Show 5 quoted lines
> On Thu, 28 Feb 2008, Jeff Garzik wrote:
>
>> 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.
-- 
Your boss is a few sandwiches short of a picnic.
Nicolas Pitre· Feb 28, 2008, 20:36 UTC · re: Jeff Garzik · lore

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

On Thu, 28 Feb 2008, Jeff Garzik wrote:
> > 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
Jeff Garzik· Feb 28, 2008, 20:45 UTC · re: Nicolas Pitre · lore

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

Nicolas Pitre wrote:
Show 7 quoted lines
> On Thu, 28 Feb 2008, Jeff Garzik wrote:
> 
>>> 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

← back to recent threads