git - 在 git svn fetch 期间解包树对象时出现 fatal error

标签 git git-svn

当运行 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 修订版。这是我按顺序尝试的:

  1. 回退到已知有效的修订版:git svn reset -r 42
  2. 重试获取:git svn fetch — 获取从 42 开始的每个修订版,直到有罪的版本(比如 50),然后显示相同的错误消息。
  3. 获取父级:git svn fetch --parent — 不要问我为什么。这需要更多的修订。不知道它是否相关。
  4. 重试获取:git svn fetch — 仍然无效。
  5. 获取每个后续​​修订:
    1. git svn fetch -r 50 — 有效。
    2. git svn fetch -r 51 — 没有错误消息,继续。
    3. git svn fetch -r xx — 出现错误消息,这是错误的修订。不在乎。
    4. git svn fetch -r xx+1 — 有效。
  6. 重试获取:git svn fetch — 有效!开始获取更多修订。

这个过程应该被清理干净(可能在第一步附近),但它对我有用,而不必重新开始一个新的克隆。

关于git - 在 git svn fetch 期间解包树对象时出现 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/338164/

相关文章:

windows - 错误的解释器 : Permission denied error when running Ruby from Git Bash

git svn rebase 总是需要强制推送

git - 搜索特定更改的 git 提交

linux - 通过从原始 svn 仓库中获取所有 svn 部分来克隆一个 git-svn 仓库

git-svn - git svn fetch (克隆后)卡住了

git svn dcommit 失败并显示 "Incomplete data: Delta source ended unexpectedly"

git - SVN 与 GIT 的分支成本

git - 关于 git,您使用哪些团队工作流程?

git - 有没有办法使用 git-svn 忽略一些(但不是全部)远程分支?

svn - git svn : Delta source ended unexpectedly