Re: Git clone error
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Aug 1, 2007, 21:12 UTC
- Message-ID
- <Pine.LNX.4.64.0708012211040.14781@racer.site>
- In-Reply-To
- <C2D647C0.2B60%denbuen@sandia.gov>
Hi,
On Wed, 1 Aug 2007, Denis Bueno wrote:
Show 23 quoted lines
> On 08/01/2007 11:17, "Johannes Schindelin" <Johannes.Schindelin@gmx.de> > wrote: > > But this is what I would do if I had the problem: I would try to create > > a state which is as close to the corrupt revision as possible, > > use a graft to replace the initial commit with that revision, and > > rewrite the branch. I'd probably start by doing something like this: > > > > $ git symbolic-ref HEAD refs/heads/recreate-first && rm .git/index > > $ git ls-tree -r --name-only <initial-commit> | > > grep -v "^condor/condor-uninstall.sh$" | > > xargs git checkout <initial-commit> > > $ git checkout <second-commit> condor/condor-uninstall.sh > > [possibly some minor hacking on the latter file to make it work] > > $ git commit -c <initial-commit> > > Wow. `commit' and `checkout' are the only two commands that I have ever > heard of in that sequence. > > How difficult would it be to create a new git repo which is exactly the same > minus the initial condor-uninstall.sh commit? That is, just to pretend the > initial import of condor-uninstall.sh never existed, and use the second > commit of the old repo the first commit of the new, and preserve the rest of > the history of the entire repo?
That would be even easier. Just graft "nothingness" as parent of the second commit:
$ git rev-parse <second-commit> >> .git/info/grafts
But of course, you should use filter-branch nevertheless, since you would have to do the same hack in _every_ repository.
Ciao, Dscho