执行git lfs迁移后无法svn rebase

时间:2019-03-01 08:44:58

标签: git svn git-lfs

我一直在将Subversion代码库迁移到Git。一切顺利,我git svn clone(d)进行回购,然后git lfs migrate(d)进行大文件和二进制文件的存储。回购从Git的角度看还不错,但我现在无法git svn rebase ...

$ git svn rebase Unable to determine upstream SVN information from working tree history $

我尝试了网络上有关解决此问题的各种建议,但这些建议似乎没有效果。有什么建议么?我可以重置Subversion / Git信息吗?在进行git lfs install(ed)之前我应该​​拥有git lfs clone吗?

1 个答案:

答案 0 :(得分:0)

使用git svngit lfs import索引被破坏的原因是,后者会重写Git存储库历史记录(除非给出了--no-rewrite选项)。

如果您可以使用--no-rewrite选项(即:您可以处理将大文件保留在Git存储库历史记录中,仅将其从以后的提交中删除),那么也许这是最简单的方法。

另一方面,如果必须将那些大的二进制文件完全远离存储库存储,则在其历史记录中必须没有提交将这些文件直接添加到Git的提交。因此,您必须继续使用普通的git lfs import来重写git svn clone/fetch创建的所有提交,并将这些文件重定向到LFS。运行git lfs import之后,您将需要重新生成git-svn rev_map,以将重写的Git历史记录中的新提交映射到它们镜像的SVN修订版。我不知道是否有简单的方法可以执行此操作,但是您可以看看https://github.com/Eloston/git-svn-lfs中的代码来了解一下。