From: Clemens Buchacher Date: Mon, 25 Jul 2011 22:44:08 GMT Subject: Re: Is there a quick way to identify commits that reference missing trees or blobs? Message-ID: <20110725224408.GA26057@toss.lan> In-Reply-To: <20110725223449.GA25560@toss.lan> 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