Re: [Question] info/grafts file.

From: Alan Chandler <alan@chandlerfamily.org.uk>
Date: 2005-11-15 19:31:40
On Tuesday 15 Nov 2005 00:03, Carl Baldwin wrote:
> This is fine, I just needed to know.
>
> How hard is it to, in a generic way, take a grafts file and reconstruct
> commits to include the parents in the graft file in the actual tree?  I
> am wondering because I couldn't, after much work, get git-svnimport to
> find my merges correctly.  So, I am needing to hand-graft some merges in
> to make things right.  Any suggestions?  I could try to figure something
> out if I can find some time.  I'm good with graph traversals and such.
>

I am interested in that question as well.  If you recall I was asking on this 
list about a week ago how to lose history (because it was irrelevent).

I at first attemtped to use a graft to bypass all the changes I wanted to 
loose, but as many of the tools ignored it I gave up.  When I looked at 
whether I could change the history by making a commit that looked like the 
graft, I came to the conclusion that I would have to do a number of things

a) Recreate the commits all the way to the head - because the commits where 
all stored in a content addressable file store, as soon as the parent link 
changes it becomes a new commit with a new sha1, so changing a commit in the 
middle of a stream of branches effectively required you to walk up to the 
head (difficult because the linkages are the other way) re-creating new 
commits.

b) Understand the topology of all the interlinking commits, and make sure that 
the two commits I were trying to squash together didn't have any intermediate 
commits that effectively pointed outside of this space (and when I say 
"pointed" I mean either via a parent link, OR via a reverse virtual link when 
some other commits parent link pointed at the commit in question).

Because of all of this complexity I gave up and used cg-merge -squash to 
create the first stage squashed branch and then manually used git-cherry-pick 
to pick one by one the commits from on top of the old branch and move it to 
the new one (not so hard there were only about 20 commits in all to move that 
way).

So I am interested to see if my logic for why the complexity was high was 
correct. 


-- 
Alan Chandler
http://www.chandlerfamily.org.uk
Open Source. It's the difference between trust and antitrust.
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Tue Nov 15 19:32:14 2005

This archive was generated by hypermail 2.1.8 : 2005-11-15 19:32:19 EST