将 SVN 分支子文件夹迁移到 Git
Migrate SVN branches subfolders to Git
我正在使用 svn2git
,但我也可以使用 git svn
。我在 SVN 存储库中有以下场景。
trunk
brances
branchesA
branchA1
branchA2
[...]
branchesB
branchB1
branchB2
[...]
branchesX
[...]
迁移完成后,在 Git 一侧有分支 branchesA
、branchesB
等...具有包含正确 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 时调查它的历史.
我正在使用 svn2git
,但我也可以使用 git svn
。我在 SVN 存储库中有以下场景。
trunk
brances
branchesA
branchA1
branchA2
[...]
branchesB
branchB1
branchB2
[...]
branchesX
[...]
迁移完成后,在 Git 一侧有分支 branchesA
、branchesB
等...具有包含正确 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 时调查它的历史.