git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
JGJeff Garzik <jeff@garzik.org>
Date
Feb 28, 2008, 20:13 UTC
Message-ID
<47C715EB.3060303@garzik.org>
In-Reply-To
<47C71233.4050705@garzik.org>
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
Previous: Jeff GarzikNext: Asheesh Laroia
Message 2 of 6 in “'git gc' always run, on old kernel repo?”
  1. Jeff GarzikFeb 28, 2008
  2. Jeff GarzikFeb 28, 2008
  3. Asheesh LaroiaFeb 28, 2008
  4. Asheesh LaroiaFeb 28, 2008
  5. Nicolas PitreFeb 28, 2008
  6. Jeff GarzikFeb 28, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.