subgit import --svn-url url://svn.serv/Bla/Bla directory/path/Local.git.Repo
就是这样
+要从SVN更新,这是第一个命令创建的Git存储库。
subgit import directory/path/Local.git.Repo
我使用了一种快速迁移到Git的方法来存储庞大的存储库。
当然你需要一些准备。
但是,您可能根本不会停止开发过程。
这是我的方式。
我的解决方案如下所示:
- 将SVN迁移到Git存储库
- 在团队切换到之前更新Git存储库。
大型SVN存储库的迁移需要大量时间。
但是更新完成的迁移只需几秒钟。
当然,我正在使用SubGit,妈妈。git-svn使我蓝死了。只是不断。git-svn让Git的“ 文件名过长 ”致命错误使我感到无聊。
脚步
1. 下载SubGit
2.准备迁移和更新命令。
假设我们是在Windows上完成的(移植到Linux并不容易)。
在SubGit的安装bin目录(subgit-2.XX \ bin)中,创建两个.bat文件。
迁移文件/命令的内容:
start subgit import --svn-url url://svn.serv/Bla/Bla directory/path/Local.git.Repo
“开始”命令在此处是可选的(Windows)。它将看到启动时的错误,并在SubGit完成后保持打开外壳的状态。
您可以在此处添加类似于git-svn的其他参数。我仅使用--default-domain myCompanyDomain.com来修复SVN作者的电子邮件地址的域。
我具有标准的SVN信息库的结构(主干/分支/标签),“作者映射”没有问题。所以我什么也没做。
(如果要迁移诸如分支之类的标记,或者您的SVN具有多个分支/标记文件夹,则可以考虑使用更详细的SubGit 方法)
提示1:使用--minimal-revision YourSvnRevNumber可以快速了解问题的解决方法(某种调试)。查看已解析的作者姓名或电子邮件特别有用。
或限制迁移历史深度。
提示2:迁移可能会被中断(Ctrl+ C)并通过运行下一个更新命令/文件来恢复。
我不建议对大型存储库执行此操作。我收到“内存不足Java + Windows异常”。
技巧3:最好为您的结果裸存储库创建一个副本。
用于更新的文件/命令的内容:
start subgit import directory/path/Local.git.Repo
要获取上一个团队对Git存储库的提交,可以运行任意次。
警告!不要触摸您的裸仓库(例如创建分支)。
您将遇到下一个致命错误:
无法恢复的错误:不同步,无法同步...将Subversion修订翻译为Git提交...
3.运行第一个命令/文件。大型存储库将花费大量时间。我的不起眼的资料库需要30个小时。
就是这样
您可以随时通过运行第二个文件/命令从SVN更新Git存储库。在将您的开发团队转到Git之前。
只需几秒钟。
还有另一项有用的任务。
将本地Git存储库推送到远程Git存储库
是你的情况吗?让我们继续。
- 配置遥控器
跑:
$ git remote add origin url://your/repo.git
- 准备将庞大的本地Git存储库初始发送到远程存储库
默认情况下,您的Git无法发送大块数据。
致命:远端意外挂断
让我们开始吧:
git config --global http.postBuffer 1073741824
524288000-500 MB 1073741824-1 GB等
解决本地证书问题。如果您的git-server使用损坏的证书。
我已禁用证书。
另外,您的Git服务器可能有一个请求量限制,需要更正。
- 将所有迁移推送到团队的远程Git存储库。
使用本地Git运行:
git push origin --mirror
(git push origin'*:*'对于旧的Git版本)
如果得到以下信息:错误:无法生成git:没有这样的文件或目录 ...对我来说,完全重建我的存储库可以解决此错误(30小时)。您可以尝试下一个命令
git push origin --all
git push origin --tags
或尝试重新安装Git(对我无用)。或者,您可以根据所有标签创建分支并将其推送。或者,或者,或者...