2009-08-31 156 views
17

我想要使用git-svn导入一个大的Subversion版本库到git中(这样我可以在git中工作,但仍然不时会颠覆)。进口超过4000个版本后,我现在收到以下错误,每当我跑git svn fetchgit svn rebase,我不设法摆脱:致命︰git-write-tree:错误构建树

$ 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 -rXY使用XY比最新导入的revsion低一点似乎也没有帮助,也没有手动从reflog到XY最新的条目。
  • 重新启动。听起来很愚蠢,但我在导入第一个~4000修订版时观察到了一些奇怪的问题,就好像某些内核资源泄漏了(很可能在windows子系统中),可能与msys/mingw(或avira病毒扫描程序,我禁用测试)。

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

可能与this question有关,该错误与错误128有关,但是具有不同的错误消息,并且没有解决方案。

msysgit版本1.6.4.msysgit.0使用bash在XP SP3

+1

在git邮件列表([email protected])上询问,您不需要订阅帖子(并且有几个Web界面可以阅读它,包括Gmane和MARC) –

回答

34

git svn gc

(可能git gcgit prune之前)

+0

谢谢,这很有效!不知道gc/prune是否有必要,我当然会这样做。 – Tobu

+0

尝试所有这些都没有解决它... –

+0

我有这个问题。在没有'git gc'和'git prune'的情况下运行'git svn gc',为我解决了这个问题。 – thakis

4

简短的回答:尝试解决任何合并冲突,承诺他们,他们取/再次拉。

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

当我尝试做一个“git存储”时,遇到了类似的错误,原来问题是合并冲突发生后拉。我没有解决&提交的冲突,这使得存储库处于阻止我拉/合并/等的状态。

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

祝你好运!