0

我的问题: 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 周时间,我不想重新开始。

4

2 回答 2

1

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

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

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

于 2016-08-05T08:35:20.207 回答
0

要解决的第一个问题是确保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可能会有一个类似的。这将允许从最后一个正确状态重新开始提取。

于 2016-08-05T18:00:39.947 回答