如何将具有历史记录的部分SVN repo迁移到新的Git存储库?

时间:2012-01-18 12:09:39

标签: git svn version-control git-svn

我需要将部分SVN repo迁移到git。

例如,SVN根目录是:http://example.com/svn/project我需要迁移像http://example.com/svn/project/trunk/foo/bare这样的项目子目录。

我试图使用:

git svn clone http://example.com/svn/project \
    -Ttrunk/foo/bare --no-metadata -A ~/authors-transform.txt ~/temp

在这个命令之后,我得到一个带有两个分支的git repo:trunktrunk@61,但我只需要一个分支。

迁移后只需要一个分支我需要做什么?

1 个答案:

答案 0 :(得分:2)

当然,删除您不需要的分支。但是你会在修订版61之前放弃历史。

trunk@61存在,因为您要导入的目录已被替换。在某种程度上,git svn并不认为是历史的延续。因此,它记录了该修订版的ref值,并重新开始。

由于它是一次性转换,您可以使用graft来连接历史记录,filter-branch来重写它,因此不需要移植文件(请参阅filter-branch文档),而不是删除现在无用的分支。 / p>

相关问题