Subject: Re: RFC: Should git gc/repack respect .git/refs/replace?

From: Andreas Schwab <[email-masked]>
Date: Sat, 23 Jul 2011 11:20:13 +0200

Jon Seymour <[email-masked]> writes:

> I recently damaged a USB drive containing an archive of a finished project.
>
> I am able to paper over a week of missing history by using the git
> replace mechanism, so that git rev-list now works as expected.
>
> When I run git gc or git repack, I get the following:
>
>    error: Could not read 023a1d5d3977420ba041cb556c0eee17c326aeb6
>    fatal: Failed to traverse parents of commit
> 44d578ea81f7a90989e2ee3c676f50e3aff7071f

git-replace(1):

       Replacement references will be used by default by all git commands
       except those doing reachability traversal (prune, pack transfer and
       fsck).

This is required, since the replaced objects are not supposed to be
recycled.  If you want to make the replacements permanent use git
filter-branch.

Andreas.

-- 
Andreas Schwab, [email-masked]
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."