“git svn fetch”失败,ls-tree因为缺少树对象而死亡

时间:2010-12-06 14:36:57

标签: svn git tags fetch

“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 /中从整个存储库创建一个标签,但是,我设法只将branches /.../ lib复制到标签,创建一个损坏的标签(svn cp ...)。
  2. 然后我用svn rm删除了损坏的标签(dexter-17)。
  3. 我创建了新的正确标签,再次调用cp。
  4. 然后正常发展继续,一切似乎都很好。好吧,直到我尝试更新我的git-svn存储库。

    我想可能有几种方法可以绕过这个问题。首先,你可以看到历史变得非常大,我们通过了25k的修订版,因此克服修改后的git克隆是最不可取的。

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

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

    如果知道实际上是什么导致git-svn像barf一样,那将会很棒。从.git / svn / refs / remotes / tags我看到dexter-17,dexter-17 @ 2423和dexter-17 @ 25032作为远程参考..这对我来说似乎不太合理......

1 个答案:

答案 0 :(得分:0)

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