Thread (12 messages) flat view 12 messages, 4 authors, 2016-06-15

Re: Git clone error

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:43:25

Hi,

On Wed, 1 Aug 2007, Denis Bueno wrote:
On 08/01/2007 11:17, "Johannes Schindelin" [off-list ref]
wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help