将外部回购导入Git的最佳方式

时间:2013-03-07 13:23:06

标签: git svn

在我目前的项目中,我们正在使用通过SVN管理的第三方库,我想将其添加到我们的本地github进行内部管理(跟踪版本之外的外部更新,以及对库的内部修改)。在SVN中,我用svn import& “vendor branch”策略。

我在git中尝试了类似的东西:创建一个repo,将其克隆到本地,svn将库导出到本地clone,commit&推。一切顺利,除了推。由于大型二进制文件(图形,Tarball,甚至一些已编译的DLL / SO / DYLIB用于各种平台),总回购约为1.7G。是的,我知道这些文件不应该在Repo中,但这个开发人员感觉不然,现在我处理它。我知道二进制文件不是git的强项(就像所有其他源代码控制系统一样),但必须有一种方法可以做到。现在,git-push不会完成(它吸收了大量的CPU和网络带宽大约30分钟,然后在接下来的10个小时内闲置)。

如何使用Git管理这样的供应商回购?

1 个答案:

答案 0 :(得分:1)

获取SVN repo的最佳方法是使用git svn子命令。首先执行git svn clone(可以花费 long 时间,因为它必须向SVN询问每个repo的完整版本并在本地构建一个git存储库),以及与git svn rebase保持同步。对于使用此类存储库可以执行的操作存在严重限制,请仔细阅读文档。对于临时使用它很好,并且小心使用git svn可以向上游发送补丁。