git svn rebase:数据不完整:增量源意外结束

git svn rebase:数据不完整:增量源意外结束,svn,git,version-control,corrupt,Svn,Git,Version Control,Corrupt,我一直在维护自己的利益。几周前,我们有人准备提交他们的第一个基于git的补丁。不幸的是,由于项目的多平台性质,我们遇到了一些关于行结束的问题(CRLF与LF等) 我试着尽我所能设置(输入),并进行一些硬重置。然而,几天后,每日更新(git svn rebase)出现以下错误: Incomplete data: Delta source ended unexpectedly 我试着在谷歌上搜索该怎么做,但即使删除.git/config中的autocrlf设置也没有帮助。我担心工作副本已损坏,但我

我一直在维护自己的利益。几周前,我们有人准备提交他们的第一个基于git的补丁。不幸的是,由于项目的多平台性质,我们遇到了一些关于行结束的问题(CRLF与LF等)

我试着尽我所能设置(输入),并进行一些硬重置。然而,几天后,每日更新(git svn rebase)出现以下错误:

Incomplete data: Delta source ended unexpectedly
我试着在谷歌上搜索该怎么做,但即使删除.git/config中的autocrlf设置也没有帮助。我担心工作副本已损坏,但我希望它不是无法恢复的

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


提前感谢您的帮助。

根据个人经验,git svn在使用相同的参数克隆或从svn存储库中获取时总是生成完全相同的提交(试试看:创建一个虚拟存储库,用git svn克隆它,再做一些提交,再次克隆它,然后在第一个副本上获取;结果提交应该具有完全相同的哈希值)


这为您提供了一个有趣的选项:您可以使用相同的参数启动一个单独的新镜像,并对两者进行比较,以查看它们在何处发散(或者它们是否发散;确保比较散列,因为它们才是最重要的)。如果它们相同(或者在发散后决定提交,则无所谓),您可以在不破坏分叉的情况下使用新镜像(或者,如果您决定忽略一些发散的提交,则可以减少分叉).

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


退一步执行单个修订无法成功解决该错误。作为该过程的一部分,我从git收到了有关HEAD未定义的错误。为了解决此问题,我执行了一个
git svn find rev XXXXX
以确定与我想要的修订相对应的哈希值,然后进行git签出。在此之后,有关HEAD的错误消失并消失git svn reset-r XXXXX成功了。

我也遇到了同样的问题,就像托德的情况一样,转到以前的版本解决了这个问题


我认为解决方法是对有问题的文件进行两步之前的修订。

我看到了一个类似的问题。它发生在我对svn回购进行部分克隆时。我猜git svn在执行dcommit时找不到文件的原始源。我已通过确保完全更新(git svn rebase)来修复它然后使用git svn set tree将特定的更改提交到subversion。如果有很多更改要提交,这可能会很痛苦,因为您需要按顺序手动提交每个更改,但如果只有一个或两个提交要推送,则效果会很好。

我对
git svn fetch
也有同样的问题,但重置方法对我来说不起作用我,可能是因为我真的不知道什么时候发生了损坏。以下是最终对我有效的方法。我执行了一个
git svn fetch--ignore path=“/branchs/”
运行时没有出错。之后,我再次执行了我的
git svn fetch
,这次成功了。

哈希保持不变,是吗?好吧,我应该知道/记得git哈希提交增量的实际字节。不幸的是,我可能会遇到分歧,因为我想在第二次解决CRLF问题时间到了。不过我会尝试重新导入。谢谢!好的,CesarB,我尝试从svn源重新导入,方法是执行git svn init,将autocrlf设置为input,然后使用git svn fetch——但我得到了同样的错误(“增量源…”)在中间的时候,还有其他的建议吗?试着不玩独角戏,就像你最初的镜子一样。如果它一直有那个错误,我会怀疑它是被破坏了的,或者说是因为它没有很好的功能,但是合并了线尾差异的恐慌,并显示出巨大的差异。唯一的增量与空白有关。我在eol也尝试了whitespace=cr,但在这方面似乎没有帮助。无论如何,这可能是一个被放弃的问题,因为据报道,watir项目在年底前将完全转移到git。不过,感谢您的输入。您对这个问题有进一步的了解吗?我们目前似乎正在解决这个问题我也有同样的问题。(上次git svn结账花了3天时间,所以我希望我能避免这种情况)@pvgoddijn不抱歉,实际上从未找到解决方案。问题只是消失了,因为他们正式迁移到github并放弃了svn。非常感谢。这有助于解决类似的问题。我只是在当前版本之前将版本号设置为一个版本。这很有帮助,但就在我杀死了所有僵尸git/perl进程并删除了索引之后x、 锁定文件。在这里看到我的答案:重置方法对我也不起作用。但我不想忽略分支。我该怎么办?@anony你只需在第一个命令上忽略分支,然后在第二次运行时,你就不会忽略分支,它会选择更改。嗨,don,这对我不起作用。我得到的错误如下:Incomplete数据:增量源意外地在/usr/lib/perl5/site_perl/Git/SVN/Ra.pm行结束282@anony-好的,这只是意味着您忽略的部分(即/branchs/)不够广泛。您的svn存储库中存在损坏,但显然不在/branchs下。您可能必须依靠反复试验才能找到损坏的位置。如何识别有问题的文件?