【问题标题】:"git svn fetch" fails, ls-tree dying because of missing tree object“git svn fetch”失败,ls-tree 由于缺少树对象而死
【发布时间】:2011-05-21 00:40:54
【问题描述】:

“git svn fetch”没有完成并喷出以下(错误)消息:

(dev) martinom :: /var/my/git ‹master*› » git svn fetch
Found possible branch point: http://.../branches/dexter/lib => http://.../tags/dexter-17, 25032
Initializing parent: refs/remotes/tags/dexter-17@25032 branch_from: /.../trunk => /.../trunk/lib
Found possible branch point: http://.../trunk/lib => http://.../branches/dexter/lib, 24233
Initializing parent: refs/remotes/tags/dexter-17@24233
fatal: Not a valid object name 
ls-tree -z  ./: command returned error: 128

似乎 ls-tree 在路径之前缺少对象名称。我不知道在什么上下文中调用它以及为什么它不存在。

一些背景知识可能有助于说明问题所在:

  1. 我应该在 tags/ 中从整个存储库创建一个标签,但是,我设法只将分支/.../lib 复制到标签,创建了一个损坏的标签 (svn cp ...)。
  2. 然后我用 svn rm 删除了损坏的标签 (dexter-17)。
  3. 我再次调用 cp 创建了新的正确标签。

然后继续正常发展,一切似乎都很好。好吧,直到我尝试更新我的 git-svn 存储库。

我想可能有几种方法可以绕过这个问题。首先,您可以看到历史变得相当大,我们已经通过了 25k 次修订,因此使用 git 从超过损坏的修订版的 rev 进行克隆是最不可取的。

如果可能的话,以某种方式跳过 git-svn 中的标签创建修订是另一种方法。我真的不需要历史中损坏标签的历史。

最后,可能会删除/修复 subversion 存储库/db 中的内容以使其与 git-svn 兼容。如果这意味着完全删除修订版或修改它或其他什么。

如果能知道究竟是什么导致 git-svn 像这样呕吐,那就太好了。从 .git/svn/refs/remotes/tags 我看到 dexter-17、dexter-17@2423 和 dexter-17@25032 作为远程参考。这对我来说似乎不太理智......

【问题讨论】:

    标签: svn git tags fetch


    【解决方案1】:

    我已经成功运行“git svn rebase”来用最新的 SVN 更新来更新我的 git 存储库。你试过变基吗?

    【讨论】:

      猜你喜欢
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 2020-06-02
      • 1970-01-01
      相关资源
      最近更新 更多