繁体   English   中英

Svn2Git-将大型GIT存储库推送到远程

[英]Svn2Git - Push Large GIT Repo To Remote

我目前正在尝试将包括历史记录在内的大约25GB的大型Subversion存储库移至GIT中,我似乎遇到了两个问题。 我认为我已经解决了其中一个问题,但是为了完整起见,我将同时介绍这两个问题,以防我搞砸了第一个修复程序。

Subversion存储库似乎并没有遵循一致的分支模式,看起来这种模式多年来已经改变了,因此首先,我使用rootistrunk选项将整个存储库添加到git:

svn2git http://svnurl/repo --rootistrunk --authors authors.txt

这个工作正常,但是仓库太大了,无法推送到远程,我收到了以下错误; [远程拒绝]主机->主机(超出最大请求长度)

要解决此问题,我使用以下方法获取了Subversion存储库的一部分,希望我一次可以获取500次提交,并解决大包装问题。

svn2git http://svnurl/repo --rootistrunk --authors authors.txt --revision 1:500

然后,我推送并成功运行,然后运行git svn fetch -r 501:1000以获取接下来的500次提交,但是当我尝试在最新获取后推送时,我收到一条消息,说“一切都是最新的”事实并非如此。

我已经搜索了git和svn2git的帮助文件,希望能找出做错了什么,但是经过几天的研究,我仍然没有解决方案,我是git的新手,所以我很可能错过了一顶旧帽子明显的东西。 有人可以告诉我我在做什么错吗? 如果我做出了错误的假设,但我做错了所有事情,那么我很乐意听到它,因为在现阶段这不会令我感到惊讶!

我当前正在尝试进入TFS 2013项目和Stash存储库,两者都表现出相同的行为,因此我在GIT方面一定做错了。 第一次推送在两种情况下均有效,仅第二次不想接受新文件。 我正在执行推送的服务器运行Ubuntu,TFS在Windows Server 2012上,Stash在另一个Ubuntu盒子上。

任何提示都欢迎,我一时感到困惑,不知道下一步该怎么做。

谢谢,Keegan

首次导入后,请尝试以下操作: git svn rebase

但是,如果您的svn存储库确实很大(超过1GB),最好的方法是避免导入所有修订。 我建议从较新的时间轴开始,如果有一天您真的想看很旧的修订,请将svn转储保存在安全的地方。

如果您选择从最近的时间轴导入,则结果如下所示:

svn2git http://svnurl/repo --rootistrunk --authors authors.txt --revision 500:HEAD

当前500次提交未拉到git时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM