我开始跟随this的帖子执行从SVN到GIT的迁移。
6天前,我执行了这个命令:
git svn fetch
它仍在运行!我可以看到控制台日志不断更改修订号,也可以看到目录的大小不断增长。目前为止,它已经达到了12GB。
所以我的SVN仓库很大,我明白这一点,它还有许多分支,这并没有帮助。问题是是否有一种方法可以查看当前进度的百分比?我只想知道已完成多少百分比的获取。
我开始跟随this的帖子执行从SVN到GIT的迁移。
6天前,我执行了这个命令:
git svn fetch
它仍在运行!我可以看到控制台日志不断更改修订号,也可以看到目录的大小不断增长。目前为止,它已经达到了12GB。
所以我的SVN仓库很大,我明白这一点,它还有许多分支,这并没有帮助。问题是是否有一种方法可以查看当前进度的百分比?我只想知道已完成多少百分比的获取。
git-svn
不是用于一次性转换存储库或存储库部分的正确工具。如果您想将Git用作现有SVN服务器的前端,则它是一个很好的工具,但对于一次性转换,您不应该使用git-svn
,而应该使用更适合此用例的svn2git
。
有许多称为svn2git
的工具,其中可能最好的是来自https://github.com/svn-all-fast-export/svn2git的KDE工具。我强烈建议使用那个svn2git
工具。这是我知道的最好的工具,而且在您可以使用其规则文件做的事情方面非常灵活。
nirvdrum svn2git
在内部使用git-svn
,因此也不是正确的工具。使用KDE的svn2git
,我个人需要大约2个小时才能转换需要使用git-svn
一周的存储库。
svneverever
工具是一款非常好用的调查历史记录的工具。
尽管使用git-svn
更容易入门,但以下是一些进一步的原因,说明为什么使用KDE的svn2git
而不是git-svn
更加优越,除了它的灵活性:
svn2git
(如果使用正确的工具),可以更好、更干净地重建历史记录,特别是对于包含分支和合并等复杂历史记录的情况。git-svn
时,标签包含一个额外的空提交,这也使它们不属于分支的一部分,因此默认情况下只有指向已获取分支的标签才会被获取。除非您给命令加上--tags
选项,否则普通的fetch
命令将无法获取它们。使用正确的svn2git,标签就在它们应该在的位置。svn2git
进行配置,但使用git-svn
最终会丢失历史记录。svn2git
,您还可以轻松地将一个SVN存储库拆分为多个Git存储库。svn2git
比使用git-svn
转换速度快得多。有许多原因说明git-svn
比KDE的svn2git
更差。 :-)
git-svn
标签下出现大量问题。 - Mykola Gurov不要使用默认的git svn
,而是使用这个工具,它执行得更好、更快。
https://github.com/nirvdrum/svn2git
我也使用过它,效果要好得多。 这里有一篇文章评估了这个过程,并展示了一些亮点。
http://blog.smartbear.com/software-quality/migrating-from-subversion-to-git-lessons-learned/
svn2git
更快吗?如果是这样,我真的很想知道。据我所知,它在内部使用了svn2git
并进行了一些额外的步骤,因此实际上应该比纯粹的git-svn
更慢,并且具有一些相同的缺点。 - Vampire