2017-03-22 76 views
0

我在非标准的存储库上运行'git svn clone',它似乎卡在过程中的某个地方。它确实执行了查找所有分支和标签的工作,但是当达到某个修订版时,它已经停止输出任何东西,并且现在已经使用了我的CPU的1个核心大约20个小时。git svn clone仍在执行工作吗?

最后一行输出是:

r2007 = f4ccc32aa2c1c504d7baca98a4efe628be3d6485 (refs/remotes/origin/MySVNRepo) 

是否有确定它是否还在做着有意义的工作,或者如果它是徒劳随时恭候的方法吗?甚至是什么可能导致它卡住?

我试过在.git文件夹上运行du -s,但它似乎并没有改变大小。

+0

这是关于一次性迁移,你以后只使用Git,还是你想从你的Git克隆提交回SVN? – Vampire

+0

这是一次性迁移,从SVN转移到Git – binarylegit

回答

0

对于一次性迁移git-svn而不是转储存储库或存储库部件的正确工具。如果你想用Git作为现有SVN服务器的前端,这是一个很好的工具,但是对于一次性转换,你应该使用而不是使用git-svn,但是正确的svn2git更适合这种使用情况。

有很多工具叫svn2git,可能最好的一个是从https://github.com/svn-all-fast-export/svn2git的KDE。我强烈建议使用svn2git工具。这是我所知道的最好的,并且它对你的规则文件可以做的非常灵活。

您将可以轻松配置svn2git的规则文件以产生您想要的结果,而且速度更快。

如果您不是100%关于存储库的历史记录,svneverever from http://blog.hartwork.org/?p=763是一个很好的工具,用于在将SVN存储库迁移到Git时调查SVN存储库的历史。


即使git-svn比较容易下手,这里是为什么使用KDE svn2git代替git-svn优越,除了它的灵活性,一些深层次原因:

  • 历史重建更好的和更清洁通过svn2git(如果使用正确的),这是更复杂的分支和合并的历史尤其如此
  • 标签是真正的标签,而不是Git分支
  • git-svn标签包含一个额外的空提交这也使得分支机构他们不要的部分,所以直到你给--tags的命令,默认情况下只标记指向获取分支还端来一正常fetch不会得到他们。有了正确的svn2git标签是属于他们的地方
  • ,如果你在SVN改变布局,可以轻松地与svn2git配置此,与git-svn你将失去​​历史最终
  • svn2git你也可以拆分一个SVN仓库分成多个Git仓库容易
  • 或结合在相同的SVN根多个SVN储存库到一个Git仓库容易
  • 转换是用正确的svn2git速度比与极大数倍git-svn

你看,为什么git-svn更糟,KDE svn2git更好。 :-)