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

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

Previous: Denis BuenoNext: Denis Bueno
Message 9 of 13 in “Git clone error”
  1. Denis BuenoJul 31, 2007
  2. Junio C HamanoAug 1, 2007
  3. Linus TorvaldsAug 1, 2007
  4. Denis BuenoAug 1, 2007
  5. Linus TorvaldsAug 1, 2007
  6. Linus TorvaldsAug 1, 2007
  7. Johannes SchindelinAug 1, 2007
  8. Denis BuenoAug 1, 2007
  9. Johannes SchindelinAug 1, 2007
  10. Denis BuenoAug 2, 2007
  11. Johannes SchindelinAug 2, 2007
  12. Linus TorvaldsAug 2, 2007
  13. Steffen ProhaskaAug 1, 2007

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.