Git / SVN互操作(保留两个存储库的历史记录)

时间:2011-03-21 08:56:50

标签: git git-svn

我正在为一个应用程序开发一个软件模块,由一个基于SVN的开发过程的客户拥有。到目前为止,我已经使用了自己的Git存储库。

现在,该模块已经足够成熟,可以成为客户端SVN树的一部分。我过去做过一些基于git-svn的工作,但从来没有两个最初独立的存储库(git部分始终是从SVN获取的克隆)。

是否可以将一个独立的git存储库“注入”到Subversion存储库中,让他的历史记录成为SVN回购的一部分?之后,在SVN之上使用git-svn的“正常”工作应该遵循。

1 个答案:

答案 0 :(得分:3)

我建议如下:

  1. git svn clone Subversion存储库

  2. 将现有的git存储库添加为git-svn repo中的远程(我们称之为mod

  3. 将您的模块工作提取到git-svn仓库并结帐到新分支:

    git fetch mod && git checkout mod/master -b mod-svn

  4. 使用git svn rebase针对最新的subversion重新启动该分支。此时,您应该拥有一个线性历史记录,其中包含Subversion以及所有模块工作的所有内容。

  5. git svn dcommit将您的模块工作保存到Subversion