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

Re: Is there a quick way to identify commits that reference missing trees or blobs?

From
Jon Seymour <jon.seymour@gmail.com>
Date
Jul 26, 2011, 04:20 UTC
Message-ID
<CAH3Anrp-pQg8x-UHKDMb+VXFT_m4LiWX=cezoZWstCoFsiJWMQ@mail.gmail.com>
In-Reply-To
<CAH3AnrouGUPvnYk_O1W_a5qZCmePC41GgEX_qcS3HLpkEm9pHw@mail.gmail.com>
On Tue, Jul 26, 2011 at 11:39 AM, Jon Seymour <jon.seymour@gmail.com> wrote:
Show 40 quoted lines
> On Tue, Jul 26, 2011 at 8:44 AM, Clemens Buchacher <drizzd@aon.at> wrote:
>> On Tue, Jul 26, 2011 at 12:34:50AM +0200, Clemens Buchacher wrote:
>>> On Sun, Jul 24, 2011 at 02:48:20AM +1000, Jon Seymour wrote:
>>> >
>>> > I was wondering if there is a quick way to identify commits that
>>> > reference missing trees or blobs as identified by git fsck?
>>>
>>> The following command has served me well for this purpose. I apply
>>> it to each ref in git-for-each-ref:
>>>
>>> $ git rev-list --objects $ref | git cat-file --batch-check
>>
>> Oh, and here is the output you get for different situations. Exit
>> status is always 0 unfortunately.
>>
>>  - missing blob
>>
>> fatal: missing blob object '78981922613b2afb6025042ff6bd878ac1994e85'
>> d165426eba5cb4c125bd6e100d1b5de7298eb601 commit 168
>> 848740929e99bda0e1a9783e7daa314c5a9732d5  missing
>>
>>  - missing tree
>>
>> error: Could not read 84bf061d017459b4be45a49b8d8dc945e7a7fdf5
>> fatal: bad tree object 84bf061d017459b4be45a49b8d8dc945e7a7fdf5
>> abce3ad54002628ab74d72b7e2baa687abcb77f9 commit 168
>>
>>  - missing parent commit
>>
>> error: Could not read 3aa66f30aa9799ac38a53b551ac4faca9cbd400b
>> fatal: Failed to traverse parents of commit 3cfb98a3cbd3f42852e20bd011c7b835b8750df7
>>
>> Clemens
>>
>
> Thanks for that.
>
> Junio, also pointed out in another thread that git rev-list --objects
> is quite useful for this purpose. His variant used git pack-objects
> which apparently does exit with zero status code.
| _non-zero_ !
Previous: Jon Seymour
Message 5 of 5 in “Is there a quick way to identify commits that reference missing trees or blobs?”
  1. Jon SeymourJul 23, 2011
  2. Clemens BuchacherJul 25, 2011
  3. Clemens BuchacherJul 25, 2011
  4. Jon SeymourJul 26, 2011
  5. Jon SeymourJul 26, 2011

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.