我们希望从 svn 永久迁移到 git,以便能够在分支和协作方面使用 git 更好的功能。
我们当前的 svn 存储库看起来像这样
svnrepo/
frontend/
trunk
branches/
ng/
...
tags/
1.x
...
backend/
trunk
branches/
ng/
...
tags/
1.x
...
Run Code Online (Sandbox Code Playgroud)
工作布局是我们检出前端项目,并在其中创建一个后端文件夹并检出后端项目。
我们现在想迁移到 git,并放弃前端和后端之间的拆分(就独立项目而言),因为它给我们带来的问题多于优势。我们希望它们都在一个 git 存储库中。
我想使用svn2git进行转换。不幸的是,最新的开发都发生在一个分支中,而不是在主干中,但我认为这对于 svn2git 来说应该不是问题。因此,新的 git 存储库布局应如下所示:
/ => svnrepo/frontend/branches/ng
/backend => svnrepo/backend/branches/ng
Run Code Online (Sandbox Code Playgroud)
其中 => 表示“迁移/转换自”。
对于转换,我们没有必要将 svn 存储库中的所有标签和分支转换为 git。这对我们来说并不重要。然而重要的是,我们拥有所有提交到分支/ng 目录中的所有文件的完整历史记录,返回到主干分支以及之前发生在主干中的所有提交。我们希望所有这些提交都在单个 git 存储库中具有上述布局。这甚至可能吗?我们将如何做到这一点?