当前位置:  开发笔记 > 开发工具 > 正文

git svn rebase:不完整的数据:Delta源意外结束

如何解决《gitsvnrebase:不完整的数据:Delta源意外结束》经验,为你挑选了2个好方法。

我一直保持混帐镜的该项目的Watir.几周前的某个时候,我们有人准备提交他们的第一个基于git的补丁.不幸的是,由于项目的多平台性质,我们遇到了关于线路结束(CRLF与LF等)的一些问题.

我尽我所能设置autocrlf选项('输入'),然后做一些--hard重置.但是,几天后,每日更新(git svn rebase)会出现此错误:

Incomplete data: Delta source ended unexpectedly

我已经尝试使用谷歌搜索该怎么做,但即使删除.git/config中的autocrlf设置也无济于事.我担心工作副本是腐败的,但我希望它不是不可恢复的.

显然,一个可能的行动方案是从svn重新导入并启动一个新的镜像,但我希望我们不必这样做,因为当前的watir-mirror已经分叉了,人们开发了新的代码在他们的叉子里.

在此先感谢您的帮助.



1> 小智..:

我在尝试从brlcad svn存储库创建git存储库时遇到了同样的问题.我通过这样做解决了这个问题git svn reset --r XXXXX,我将XXXXX设置为最初产生错误的版本之前的大约50个版本.

退回单个修订版并未成功解决错误.作为整个过程的一部分,我从git收到有关未定义HEAD的错误.为了解决这个问题,我做了一个git svn find-rev XXXXX确定对应于我想要的修订版的哈希,然后是git checkout.在此之后,关于HEAD的错误消失了并且git svn reset -r XXXXX工作了.


非常感谢.这有助于解决类似的问题.我只是在当前版本之前将版本号设置为一个版本.

2> CesarB..:

根据个人经验,当从具有相同参数的svn存储库进行克隆或获取时,git-svn始终生成完全相同的提交(尝试它:创建虚拟存储库,使用git-svn克隆它,再做一些提交,再次克隆它,并获取第一个副本;结果提交应该具有完全相同的哈希).

这给你一个有趣的选择:你可以用相同的参数开始一个单独的新镜像,并比较两者以查看它们发散的位置(或者它们根本不同;确保比较哈希,因为它们是重要的).如果它们是相同的(或者你决定它们发散后的提交无关紧要),你可以使用新鲜的镜像而不会破坏分支(如果你决定忽略一些不同的提交,则可以减少它们的数量).

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有