SubGit(vs死亡蓝屏)
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,妈妈。gitsvn让我成为蓝屏死亡。只是不断。git-svn让我厌烦git的“文件名太长”致命错误。
步骤
1.下载SubGit
2.准备迁移和更新命令。
假设我们是为Windows做的(移植到Linux很简单)。在SubGit的安装bin目录(subbit-2.X.X\bin)中,创建两个.bat文件。
用于迁移的文件/命令的内容:
start subgit import --svn-url url://svn.serv/Bla/Bla directory/path/Local.git.Repo
“start”命令在这里是可选的(Windows)。它将允许在启动时看到错误,并在SubGit完成后打开一个shell。
您可以在这里添加类似于git-svn的其他参数。我只使用默认域myCompanyDomain.com来修复SVN作者电子邮件地址的域。我有标准的SVN存储库结构(主干/分支/标签),我们在“作者映射”方面没有问题。所以我什么都不做了。
(如果你想迁移像分支这样的标记,或者你的SVN有多个分支/标记文件夹,你可以考虑使用更详细的SubGit方法)
技巧1:使用--最小修订版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存储
这是你的情况吗?让我们继续。
配置遥控器
Run:
$ git remote add origin url://your/repo.git
准备将巨大的本地Git存储库首次发送到远程存储库
默认情况下,Git无法发送大块数据。致命:远端意外挂断
让我们跑吧:
git config --global http.postBuffer 1073741824
524288000-500 MB1073741824-1 GB等。
修复本地证书问题。如果您的git服务器使用了损坏的证书。
我已禁用证书。
此外,您的Git服务器可能存在需要更正的请求量限制。
将所有迁移推送到团队的远程Git存储库。
使用本地Git运行:
git push origin --mirror
(git push origin“*:*”用于旧git版本)
如果出现以下错误:error:无法派生git:没有这样的文件或目录。。。对我来说,完全重新创建存储库解决了这个错误(30小时)。您可以尝试以下命令
git push origin --all
git push origin --tags
或者尝试重新安装Git(对我来说没用)。或者您可以从所有标签创建分支并推送它们。或者,或者,或者。。。