SVN到GIT迁移失败使用svn2git
我正在尝试使用svn2git将存储库从SVN迁移到GIT。这是一个开源项目,公共SVN资料库网址是:http://svn.verinice.org/svnroot/。随意测试迁移...SVN到GIT迁移失败使用svn2git
SVN仓库的结构是:
- 分支机构
- 标签
- TRUNK
我用下面的命令来克隆这种回购:
svn2git http://svn.verinice.org/svnroot
--trunk TRUNK
--branches BRANCHES
--tags TAGS
但是这个命令只能迁移一个分支而没有标签。我用这些命令检查结果:
[[email protected] git-repo]# git branch -a
* master
springy
remotes/springy
[[email protected] git-repo]# git tag -l
[[email protected] git-repo]#
如何迁移所有分支和标签? 感谢您的帮助!
UPDATE:使用参数--authors作者-file.txt的并添加姓名和电子邮件地址与git配置svn2git工作正常
后:
git config --global user.name "your name"
git config --global user.email "[email protected]"
您必须添加一个line for 每 SVN用户authors-file.txt:
svn-user-name = Full Name <[email protected]>
git branch -a and git tag -l现在会返回所有分支和标记。
我没有使用svn2git的经验,但是您可以尝试使用git svn clone
来切换到git。请注意,这将需要很长时间。有关更多信息,请参阅git help svn
。
请注意,这不会在git中创建适当的标签,很可能是由于svn2git FAQ上讨论的git和svn标签的差异。相反,该工具将创建标签分支。如果你想把它们变成适当的标签(因为我假设你根本不会回到SVN,这不应该造成任何伤害),有关于如何编写脚本来做的讨论here只是。
重要的是要知道,所有这些工具都建立在git的本地SVN支持git-svn之上。因此,可以直接使用git-svn进行克隆,获取变更集等,但最好有一个脚本/工具来帮助我们完成迁移过程中的所有操作,并因此需要这些工具。
我使用svn2git包装脚本托管在https://github.com/nirvdrum/svn2git上,以便对git迁移进行颠覆,它确实有帮助,特别是当我们想要定期从我们的Subversion存储库中提取变更集时,因为我们没有完全关闭Subversion回购站。您可以通过ruby包装脚本,migration.rb了解更多信息。
+1,git-svn足以完全克隆svn回购 – 2012-03-27 17:37:32
也能正常工作。分支而不是标签是无害的 - 被接受。 – 2012-03-28 11:31:45