Re: 'git gc' always run, on old kernel repo?
- From
- Jeff 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