合并存储库时从svn转换为git的最佳方法?

时间:2014-07-17 22:52:18

标签: git svn

svn-all-fast-export看起来是从svn转移到git的好方法,它支持将一个svn存储库拆分为多个git存储库。

我想做相反的事情。我有一组密切相关的svn存储库。它们都使用相同的分支名称同时分支。所有存储库中的标记都是相同的。我想将它们组合到一个git存储库中,每个svn存储库中的文件都在自己的子目录中。我希望这些历史记录是交错的,例如,每个存储库中的trunk都以日期顺序出现在git中的master中。

更具体地说,我有svn存储库,其中的trunk提交按时间顺序编号(每个分支上的提交看起来相似):

A
  commit 1
  commit 4
B
  commit 2
  commit 3
  commit 8
C
  commit 5
  commit 6
  commit 7

我想在git中转换为以下内容:

bigproject/
  A/
  B/
  C/

主人的历史看起来像:

commit 1
commit 2
commit 3
commit 4
commit 5
commit 6
commit 7
commit 8

svn-all-fast-export能做到吗?我还没有找到任何例子。还有其他现有工具吗?

1 个答案:

答案 0 :(得分:1)

我在之前的项目中使用了SubGit来执行Subversion to Git迁移,这比你想要完成的更简单。就个人而言,我尝试在SubGit之前使用多种迁移工具,并对整体可用性和常识配置选项感到惊喜。

以下文章还介绍了如何利用SubGit等工具完成任务:https://serverfault.com/questions/420828/migrate-multiple-svn-repositories-into-single-git-repository。但是再一次,我肯定会建议SubGit使用git-svn桥接器来构建基本的迁移任务中的git(有时候看起来非常脆弱)。

相关问题