views:

60

answers:

1

I have the following situation (mostly because I didn't really thought it through in the beginning -- or more exactly, I thought it shouldn't be a problem the way I did this but now I am stumbled):

... --- A --- B1 --- ... --- Bn

... --- git-svn

Whereby A and git-svn are at the same state (exactly the same files and file content) but they don't have any common point in history.

And I want:

... --- git-svn --- B1 --- ... --- Bn

Or at least, when I do the svn dcommit, I want exactly to get the commits B1 to Bn and nothing else.

I am not exactly sure how dcommit works. So if I would get something like this:

... ------------ A --- B1 --- ... --- Bn
                  \                    \
... --- git-svn -- A' ----------------- B'

would the dcommit behave in the way I want? Because if so, that would be easy to get (merging A into git-svn does work just fine because they are content-wise the same).

Or should I do some sort of rebase? But I don't want to rebase A on git-svn, just B1 to Bn.

A: 

dcommit does an svn commit for each commit from git-svn to HEAD (or the commit you specify).

I think your last sentence is the way I'd approach it: rebase B1 to Bn onto git-svn. This is done as follows:

git checkout Bn
git rebase --onto git-svn B1 Bn
MikeSep
Ah, thank you for that answer. :) A few minutes too late, I just wrote a script now which did it for me because I wasn't sure if the rebase command was able to do exactly that (I didn't understood it that way from the docu). Anyway, good to know, next time that will save some time probably.
Albert