我正在尝试使用 git-svn 将大型 subversion 存储库导入 git (这样我就可以在 git 中工作,但仍然不时地提交 subversion)。导入超过 4000 个修订后,我现在每次运行时都会收到以下错误 git svn fetch 或者 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 --unreachable 或者 git fsck --no-reflog
  • git gc --aggressive 没有帮助
  • 将单个包文件移走并重新导入 git unpack-objects 没有帮助
  • git svn reset -rXY XY 比最新导入的版本低一点似乎也没有帮助,手动删除最新条目也没有帮助 reflog 直到 XY。
  • 重启。听起来很傻,但我在导入第一个 ~4000 修订版时确实观察到一些奇怪的问题,就好像某些东西泄漏了大量内核资源(最有可能在 Windows 子系统中),可能与 msys/mingw (或 avira 病毒扫描程序,我禁用它进行测试)。

我也不知道错误128到底代表什么。有任何想法吗?提前致谢!

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

msysgit版本 1.6.4.msysgit.0 在 xp sp3 上使用 bash

有帮助吗?

解决方案

git svn gc

(可能 git gcgit prune 前)

其他提示

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

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

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

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

祝你好运!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top