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

Re: dangling commits and blobs: is this normal?

From
Brandon Casey <casey@nrlssc.navy.mil>
Date
Apr 22, 2009, 19:45 UTC
Message-ID
<I5p8gPPuE_qW2RDhwiqxCWDuMtnuvvgtSkeTkxby6rlj_FKtpERaBA@cipher.nrlssc.navy.mil>
In-Reply-To
<20090422190856.GB13424@coredump.intra.peff.net>
Jeff King wrote:
Show 21 quoted lines
> On Wed, Apr 22, 2009 at 08:15:56PM +0200, Matthieu Moy wrote:
> 
>> Nicolas Pitre <nico@cam.org> writes:
>>
>>> Why so?  Having fewer packs is always a good thing.  Having only one 
>>> pack is of course the optimal situation. 
>> Good and optimal wrt Git, but not wrt an incremental backup system for
>> example. I have a "git gc" running daily in a cron job in each of my
>> repositories, but to be nice with my sysadmin, I don't want to rewrite
>> tens of megabytes of data each night just because I commited a 2 lines
>> patch somewhere.
> 
> You can mark your "big" pack with a .keep, then do your nightly gc as
> usual. You'll have a smaller pack being rewritten each night. When it
> gets big enough, drop the .keep, gc, and then .keep the new pack.
> 
> Yes, it's a bit more work for you, but having "git gc" optimize by
> default for git's performance seems to be the only sensible course.
> Your idea of what is "big enough" above is somewhat outside the realm of
> git, so you have to pay the price to specify it by tweaking the
> keep-files.

But isn't git-gc supposed to be the "high-level" command that just does the right thing? It doesn't seem to me to be outside the scope of this command to make a decision about trading off speed/io for optimal repo layout. In fact, it does do this already. The default window, depth and compression settings are chosen to be "good enough", not to produce the absolute optimum repo.

I'm just pointing out that everything is a trade off. So I think saying something like "gc must optimize for git's performance" is not entirely accurate. We make tradeoffs now. Other tradeoffs may be helpful.

Also, don't interpret my comments as me being convinced that a change to gc should be made. It's a trivial patch, but I'm not yet certain one way or the other.

-brandon
Previous: Jeff KingNext: Jeff King
Message 7 of 21 in “dangling commits and blobs: is this normal?”
  1. John DlugoszApr 21, 2009
  2. Jeff KingApr 22, 2009
  3. Brandon CaseyApr 22, 2009
  4. Nicolas PitreApr 22, 2009
  5. Matthieu MoyApr 22, 2009
  6. Jeff KingApr 22, 2009
  7. Brandon CaseyApr 22, 2009
  8. Jeff KingApr 22, 2009
  9. Nicolas PitreApr 22, 2009
  10. Matthieu MoyApr 23, 2009
  11. Nicolas PitreApr 22, 2009
  12. Brandon CaseyApr 22, 2009
  13. Nicolas PitreApr 22, 2009
  14. Jeff KingApr 22, 2009
  15. Nicolas PitreApr 22, 2009
  16. Geert BoschApr 23, 2009
  17. Shawn O. PearceApr 23, 2009
  18. Geert BoschApr 23, 2009
  19. Matthias AndreeApr 23, 2009
  20. Nicolas PitreApr 23, 2009
  21. John DlugoszApr 22, 2009

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.