我需要将具有提交历史的非常庞大的SVN中继迁移到Git。 SVN存储库具有以下结构:
branches/
project1-branch1
project1-branch2
project2-branch1
project2-branch2
tags/
project1-1.0
project1-1.1
trunk/
project1/
project2/
project3/
project4/
我真的只想将主干中的每个项目移动到相应的Git存储库 - 不要真正关心标签和分支。如果我错了,请纠正我,但我相信Git对于非常大的存储库并不适用。
过去曾有类似的问题,但他们已经很老了,只是想知道是否有人对解决这个问题有新的看法。我尝试了一些像SubGit这样的工具,但他们认为每个项目都在自己的文件夹中,并且有一个主干,分支和标签层次结构。当我尝试明确指定trunk文件夹并将标记和分支指向空文件夹时,SubGit会在一段时间后停止响应。
答案 0 :(得分:2)
由于版本3.0 SubGit可以使用单个目录(在早期版本中,它需要在编写时使用trunk,branches和tags)。要做到这一点,你可以运行
$ subgit configure --svn-url <URL>/trunk/project1 --layout directory repo1.git
# adjust repo1.git/subgit/config configuration
$ subgit install repo1.git
如果您的存储库没有遵循最佳做法并且有很多文件没有设置svn:eol-style
,那么您可能最好添加
[translate]
eols=false
在上面“调整”步骤的repo1.git / subgit / config文件末尾的选项。这将关闭EOLs翻译。
当看起来SubGit没有进展时,它可能会检查你的行李箱,因为你说的很大。它写入一些〜/ .subgit / logs /文件,因此您可以通过查看来跟踪进度。获取第一个修订版后,它会显式显示进度。
免责声明:我是SubGit开发人员之一。
答案 1 :(得分:1)
如此简单的任务,你可以
git svn clone URL/trunk/project*
醇>