将 SVN 分支子文件夹迁移到 Git

Migrate SVN branches subfolders to Git

我正在使用 svn2git,但我也可以使用 git svn。我在 SVN 存储库中有以下场景。

 trunk 
 brances 
     branchesA
         branchA1
         branchA2
         [...]
     branchesB
         branchB1
         branchB2
         [...]
     branchesX
         [...]

迁移完成后,在 Git 一侧有分支 branchesAbranchesB 等...具有包含正确 SVN 分支的内部文件夹。例如在 Git 存储库上:

 master 
 branchesA 
 branchesB 
 branchesX
 [...]

如果你 $git checkout branchesA 你会看到所有分支子文件夹,如 ($ls):

 branchA1
 branchA2
 branchA3
 [...]

有没有一种方法或工具可以在我已经迁移后解决这个问题,或者以某种方式将一个以上的文件夹传递给 --branches

不要不要使用git svn进行一次性转换。如果您需要不断同步并提交回 SVN,这很好,但对于一次性转换来说不是最佳选择。

有许多名为 svn2git 的工具,但根据您的问题,我猜您没有使用 https://github.com/svn-all-fast-export/svn2git 中的 KDE。我强烈建议使用 svn2git 工具。这是我所知道的最好的,而且你可以非常灵活地使用它的规则文件。

您将能够轻松地为您的布局配置它以获得您想要和期望的结果。您甚至可以保持在 "subfolders" 中拥有您的分支机构的惯例,就像您目前在 SVN 中拥有它一样。 Git 中的分支将是 branchesA/branchA1

如果您不是 100% 了解存储库的历史,http://blog.hartwork.org/?p=763 中的 svneverever 是一个很好的工具,可以在将 SVN 存储库迁移到 Git 时调查它的历史.