git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org, nico@cam.org
Subject: Re: How to replace a single corrupt, packed object?
Date: Fri, 8 Aug 2008 09:23:47 -0700	[thread overview]
Message-ID: <20080808162347.GD9152@spearce.org> (raw)
In-Reply-To: <alpine.DEB.1.00.0808081716010.24820@pacific.mpi-cbg.de.mpi-cbg.de>

Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> On Fri, 8 Aug 2008, Johannes Schindelin wrote:
> > On Fri, 8 Aug 2008, Shawn O. Pearce wrote:
> > 
> > > Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> > > > my auto gc kicked in, and shows this:
> > > > 
> > > > fatal: corrupt packed object for 2c1e128aa51e3a64bd61556c0cd488628b423ccf
> > > > error: failed to run repack

Here's another idea.

You have the good object loose.  So do something like this:

  $ mkdir foo
  $ cd foo
  $ git init
  $ cp ../../the_good_loose_obj .git/objects/??/....

  $ cd ../corrupt_repo
  $ (
   cd ../foo;
   echo blob; 
   echo data $(git cat-file -s the_good_loose_obj);
   git cat-file blob the_good_loose_obj;
  ) | git fast-import
  $ git repack -a -d

The new pack file created by gfi will have a newer timestamp than the
one with the corruption.  This will cause it to sort higher in the
pack list, and we'll take objects from the first pack we find it in.

-- 
Shawn.

  reply	other threads:[~2008-08-08 16:24 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-08 14:41 How to replace a single corrupt, packed object? Johannes Schindelin
2008-08-08 14:39 ` Shawn O. Pearce
2008-08-08 14:50   ` Johannes Schindelin
2008-08-08 15:21     ` Johannes Schindelin
2008-08-08 16:23       ` Shawn O. Pearce [this message]
2008-08-08 15:30 ` Pieter de Bie
2008-08-08 16:19   ` Shawn O. Pearce
     [not found]     ` <90E12BC7-1950-41DF-8BE5-C6B63CE060D9@ai.rug.nl>
2008-08-08 16:36       ` Shawn O. Pearce
2008-08-08 16:48       ` Johannes Schindelin
2008-08-11  2:55         ` Nicolas Pitre
2008-08-11  3:07           ` Shawn O. Pearce
2008-08-11  3:40             ` Nicolas Pitre
2008-08-11  3:46               ` Shawn O. Pearce
2008-08-11 18:59           ` Johannes Schindelin
2008-08-11  1:43 ` Nicolas Pitre
2008-09-15 14:05   ` Johannes Schindelin
2008-09-15 16:26     ` Nicolas Pitre
2008-09-15 16:34       ` Johannes Schindelin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080808162347.GD9152@spearce.org \
    --to=spearce@spearce.org \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=nico@cam.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).