当运行 get svn fetch 从上游 svn 存储库中 pull 最新的新分支时,我得到了这个错误:
$ git svn fetch
fatal: failed to unpack tree object 5ecb324e8b8fcb918acb253f33edc6ce49e49e0d
read-tree 5ecb324e8b8fcb918acb253f33edc6ce49e49e0d: command returned error: 128
现在,每次在该本地仓库上尝试 git svn 都会导致相同的错误。最初我运行的是 git 版本 1.5.6.4_0,在出现错误后我尝试更新到 1.6.0.2_2,但问题仍然存在。
有什么办法可以清除这种损坏?上游存储库的新 git svn 克隆很好,但我想保留我现有的设置。我查看了文档并用谷歌搜索了问题,但没有成功。
最佳答案
我遇到了同样的问题。这是由于 git-svn 无法以某种方式读取或处理的特定 SVN 修订版。这是我按顺序尝试的:
- 回退到已知有效的修订版:
git svn reset -r 42
- 重试获取:
git svn fetch
— 获取从 42 开始的每个修订版,直到有罪的版本(比如 50),然后显示相同的错误消息。 - 获取父级:
git svn fetch --parent
— 不要问我为什么。这需要更多的修订。不知道它是否相关。 - 重试获取:
git svn fetch
— 仍然无效。 - 获取每个后续修订:
git svn fetch -r 50
— 有效。git svn fetch -r 51
— 没有错误消息,继续。git svn fetch -r xx
— 出现错误消息,这是错误的修订。不在乎。git svn fetch -r xx+1
— 有效。
- 重试获取:
git svn fetch
— 有效!开始获取更多修订。
这个过程应该被清理干净(可能在第一步附近),但它对我有用,而不必重新开始一个新的克隆。
关于git - 在 git svn fetch 期间解包树对象时出现 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/338164/