【问题标题】:SVN2Git object reference errorSVN2Git 对象引用错误
【发布时间】:2016-08-04 14:51:59
【问题描述】:

我的问题: Windows 中的 Ubunut VM 迁移; Windows 出现蓝屏死机; Windows 重新启动;迁移被破坏了!

~/folder$ svn2git --rebase
error: refs/remotes/svn/some_branch does not point to a valid object!
fatal: git cat-file 81974ef70e6b9dba85295bf7341dd6808c03250d: bad file
cat-file commit 81974ef70e6b9dba85295bf7341dd6808c03250d: command returned error: 128

command failed:
git svn fetch

我已经尝试解决这些答案中提到的问题:

不幸的是,到目前为止没有人帮助过我。

有人知道如何解决这个问题吗?这次迁移已经花费了 +2 周时间,我不想重新开始。

【问题讨论】:

    标签: git rebase svn2git


    【解决方案1】:

    有很多工具叫做svn2git,可能最好的一个是来自https://github.com/svn-all-fast-export/svn2git 的KDE 工具。根据您的问题,我得出的结论是您没有使用那个,而是基于git-svn 的那个。我强烈推荐使用svn2git 工具。它是我所知道的最好的,并且在你可以使用它的规则文件做什么方面非常灵活。

    此外,整个迁移已经花费了您超过 2 周的时间,很可能会在几个小时内完成,因为它的速度非常快。

    如果您不是 100% 了解存储库的历史,那么在将 SVN 存储库迁移到 Git 时,http://blog.hartwork.org/?p=763 中的 svneverever 是一个很好的工具来调查 SVN 存储库的历史记录。

    【讨论】:

    • 面临这个错误:svn-all-fast-export: /build/subversion-yttRtj/subversion-1.9.3/subversion/libsvn_subr/dirent_uri.c:972: svn_dirent_join: Assertion svn_dirent_is_canonical(base, pool) failed. Aborted (core dumped)
    • 我从未见过这个错误。你发出的命令是什么?
    • 好吧,那么您的解决方案就在工单中了。它没有修复,但由于使用错误而关闭。这就是为什么我要求你的命令,因为我怀疑这一点。 ;-)
    • 再次感谢@vampire
    • 不客气。如果帖子对您有帮助,您可以考虑接受它,如下所述:stackoverflow.com/help/someone-answers :-)
    【解决方案2】:

    要解决的第一个问题是确保git-fsck 运行正常。此后,第二个问题是能否继续迁移。

    很可能分支的第一次提交已正确写入磁盘,但最后一次提交失败。尝试运行git reflog show refs/remotes/svn/some_branch。如果它显示提交,请尝试查找存在的最后一个提交:git show <hash>。然后你重置分支:git update-ref -m 'last commit found' refs/remotes/svn/some_branch <hash>

    然后运行git fsck 并修复下一个分支。

    git-svn 有一个命令git svn reset -r <n>svn2git 可能会有一个类似的。这将允许从上次正确的状态重新开始提取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-01
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      相关资源
      最近更新 更多