20

我正在尝试使用 git-svn 将大型 subversion 存储库导入 git(这样我就可以在 git 中工作,但仍然不时提交 subversion)。导入超过 4000 个修订后,我现在在运行git svn fetchor时遇到以下错误git svn rebase,我无法摆脱:

$ git svn fetch
error: invalid object 100644 1f2....742 for 'src/path/.../file.cs'
fatal: git-write-tree: error building trees
write-tree: command returned error: 128

到目前为止我已经尝试过:

  • git fsck --full不报告任何事情,也不报告git fsck --unreachablegit fsck --no-reflog
  • git gc --aggressive没有帮助
  • 将单个包文件移走并重新导入它git unpack-objects并没有帮助
  • git svn reset -rXYXY 比最新导入的版本低一点似乎也没有帮助,手动从reflogXY 中删除最新条目也没有帮助。
  • 重启。听起来很傻,但我在导入第一个 ~4000 修订版时确实观察到了一些奇怪的问题,好像某些东西泄漏了很多内核资源(很可能在 windows 子系统中),可能与 msys/mingw(或 avira 病毒扫描程序,我禁用了测试)。

我也没有发现错误 128 真正代表什么。有任何想法吗?提前致谢!

可能与这个问题有关,该问题也与错误 128 有关,但错误消息不同,并且没有解决方案。

1.6.4.msysgit.0xp sp3 上带有 bash 的msysgit 版本

4

2 回答 2

44

git svn gc

(可能git gcgit prune之前)

于 2009-09-17T02:04:35.837 回答
4

简短的回答:尝试解决任何合并冲突,提交它们,然后它们再次获取/拉取。

更长的解释:我猜你解决了这个问题,因为它是很久以前发布的。我写这篇文章是因为 Google 对 StackOverflow 文章的排名足够高,以至于遇到此问题的其他人很可能会在遇到此错误时访问此页面。

我在尝试执行“git stash”时遇到了类似的错误,结果问题是在拉取后发生了合并冲突。我没有解决并提交冲突,这使存储库处于阻止我拉/合并/等的状态...

如果您确保没有任何阻止文件,请重试。

祝你好运!

于 2010-10-20T01:18:33.153 回答