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

Re: does a successful 'git gc' imply 'git fsck'

From
Shawn Pearce <spearce@spearce.org>
Date
Dec 2, 2012, 04:28 UTC
Message-ID
<CAJo=hJvHeA4g1fJZXm9VxpdvMFoHeEJW_r5YtXTDACEp09Xm_Q@mail.gmail.com>
In-Reply-To
<CAMK1S_iBq1ReGkjuy2UBENSQXOWyKj2ZzSCcg7Z89FVtVL2wMw@mail.gmail.com>
On Sat, Dec 1, 2012 at 6:31 PM, Sitaram Chamarty <sitaramc@gmail.com> wrote:
Show 12 quoted lines
> Background: I have a situation where I have to fix up a few hundred
> repos in terms of 'git gc' (the auto gc seems to have failed in many
> cases; they have far more than 6700 loose objects).  I also found some
> corrupted objects in some cases that prevent the gc from completing.
>
> I am running "git gc" followed by "git fsck".  The majority of the
> repos I have worked through so far appear to be fine, but in the
> larger repos (upwards of 2-3 GB) the git fsck is taking almost 5 times
> longer than the 'gc'.
>
> If I could assume that a successful 'git gc' means an fsck is not
> needed, I'd save a lot of time.  Hence my question.

Not really. For example fsck verifies that every blob when decompressed and fully inflated matches its SHA-1. gc only checks connectivity of the commit and tree graph by making sure every object was accounted for. But when creating the output pack it only verifies a CRC-32 was correct when copying the bits from the source to the destination, it does not verify that the data decompresses and matches the SHA-1 it should match.

So it depends on what level of check you need to feel safe.
Previous: Sitaram ChamartyNext: Sitaram Chamarty
Message 2 of 7 in “does a successful 'git gc' imply 'git fsck'”
  1. Sitaram ChamartyDec 2, 2012
  2. Shawn PearceDec 2, 2012
  3. Sitaram ChamartyDec 2, 2012
  4. Junio C HamanoDec 2, 2012
  5. Sitaram ChamartyDec 3, 2012
  6. Matthieu MoyDec 3, 2012
  7. Junio C HamanoDec 3, 2012

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.