我目前正在尝试将我们的大型 Subversion 存储库(包括历史记录在内大约 25GB)移动到 GIT 中,我似乎遇到了两个问题。其中一个我认为我已经解决了,但为了完整起见,我会涵盖两者,以防我搞砸了第一个修复;
Subversion 存储库似乎没有遵循一致的分支模式,看起来这种模式多年来发生了变化,所以首先我使用 rootistrunk 选项将整个 repo 获取到 git:
svn2git http://svnurl/repo --rootistrunk --authors authors.txt
这可行,但是回购太大而无法推送到远程,我收到以下错误;[远程拒绝] master -> master (超过最大请求长度)
为了解决这个问题,我使用以下方法获取了 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 repo,两者都表现出相同的行为,所以我一定在 GIT 方面做错了。第一次推送在这两种情况下都有效,只有第二次不想接受新文件。我正在执行推送的服务器运行 Ubuntu,TFS 在 Windows Server 2012 上,而 Stash 在另一个 Ubuntu 机器上。
欢迎任何提示,我现在很困惑,不知道下一步该去哪里。
谢谢,基冈