Hi,

I was wondering if anyone would be able to answer a complicated svn to git 
migration question I have.  I have a svn repository that was started back 
in 2001 and hence it has absolutely no svn:mergeinfo metadata present for 
any branches (using the svnmerge.py script for branch management is also to 
blame) [1].  Hence when using git-svn to migrate the entire repository to 
git, the branches are present and attached to the correct commits but they 
are not merged back and look a little like:

* master_hash3
|
* master_hash2
|
|* branch_hash2
||
|* branch_hash1
|/
* master_hash1

How can I rewrite the history to have the following?

* master_hash3
|\
*| master_hash2
||
|* branch_hash2
||
|* branch_hash1
|/
* master_hash1

The parent of master_hash3 is master_hash2, but I would like to add 
branch_hash2 as a second parent.  I have tried to use git filter-branch as 
follows:

git filter-branch --force --parent-filter 'test $GIT_COMMIT = master_hash3 
&& echo \"-p master_hash2 -p branch_hash2\" || cat' master

This creates a new master_hash3' commit with parents master_hash2 and 
branch_hash2, but master_hash3 remains with the single parent 
master_hash2.  Assuming the merges can be recreated with all subsequent 
commits rewritten with new hashes, I would like to work backwards and 
script the complete merge history of the repository back into the 
repository.  Is this at all possible?

Cheers,

Edward


[1]  An archive of the repository is at 
https://sourceforge.net/p/nmr-relax/code-svn-archive/HEAD/tree/.  Note that 
the migration is complicated by the fact that the main development branch 
changed with time as 'v1' -> 'v2' -> 'v3' -> 'trunk'.

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to