2010-06-08 45 views
0

我有以下情况(主要是因为我没有真正想过它通过在开始 - 或者更确切地说,我认为这不应该是一个问题顺便我这样做,但现在我迷迷糊糊):git:正确的方式来合并/ rebase相对于svn dcommit

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

... --- git-svn 

借助于此Agit-svn处于相同的状态(完全相同的文件和文件内容),但他们没有历史上的任何共同点。

而且我想:

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

或者至少,当我做了svn dcommit,正是我想要得到提交B1Bn而已。

我不确定dcommit是如何工作的。所以,如果我得到这样的事情:

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

dcommit会以我想要的方式表现吗?因为如果是这样,那很容易得到(合并Agit-svn确实工作得很好,因为它们在内容方面相同)。

或者我应该做一些rebase?但我不想在git-svn上,B1Bn

回答

0

dcommit对于从git-svnHEAD(或您指定的提交)的每个提交都执行svn commit

我认为你的最后一句话是我的方式:rebase B1Bngit-svn。这是做如下:

git checkout Bn 
git rebase --onto git-svn B1 Bn 
+0

啊,谢谢你的答案。 :)几分钟的时间太晚了,我现在只写了一个脚本,对我来说这样做,因为我不确定rebase命令是否能够完全做到这一点(我没有从文档中理解它)。无论如何,很高兴知道,下次可能会节省一些时间。 – Albert 2010-06-08 15:06:28