我们一直在使用SVN,开发人员一直在慢慢迁移到git-svn。现在我们准备好了,并完全转向git(使用gitolite)。我不确定如何将我们的存储库迁移到gitolite并保留历史记录。我不知道我是否应该尝试直接转换svn repo,或者使用我的本地git-svn副本并推送它。如何从git-svn迁移到gitolite并保留历史记录
什么是最好的方法?
我们一直在使用SVN,开发人员一直在慢慢迁移到git-svn。现在我们准备好了,并完全转向git(使用gitolite)。我不确定如何将我们的存储库迁移到gitolite并保留历史记录。我不知道我是否应该尝试直接转换svn repo,或者使用我的本地git-svn副本并推送它。如何从git-svn迁移到gitolite并保留历史记录
什么是最好的方法?
我建议使用SubGit来将你的Subversion版本库翻译成Git。 以下单一命令,应该足以执行转换:
$ subgit install svn_repos
后,你会得到Git仓库中svn_repos/.git
或多个Git仓库中svn_repos/git/
(如果你保留多个项目svn_repos)。
然后您可以继续使用SubGit保留两个Subversion和Git的访问,或只是将其卸载,并使用svn_repos因为只有一个Git仓库:
$ subgit uninstall svn_repos
免责声明:我SubGit的开发商。
作为后续行动,我提出了如何从SVN迁移到Gitolite短HOWTO博客文章:看
感谢您的建议 - 我没有听说过该项目。然后,我将如何把这个git回购并推送到gitolite(我是远程git回购的新手 - 我一直使用svn作为回购。) – Yehosef 2012-01-03 17:12:09
@Yehosef SubGit是一个新项目,所以不要奇怪你还没有听说过它。 – 2012-01-03 21:05:39
至于push:在'subgit install svn_repos'完成翻译之后,'svn_repos' _becomes_是一个正常的Git仓库。所以只需运行'git --git-dir = svn_repos/.git push --all gitolite_repos_url'。 – 2012-01-03 21:14:09