如何将SVN仓库的一部分与历史记录迁移到新的Git仓库?

如何将SVN仓库的一部分与历史记录迁移到新的Git仓库?

问题描述:

我需要迁移的SVN回购与git的一部分。如何将SVN仓库的一部分与历史记录迁移到新的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 

此命令后,我收到了混帐回购协议与两个分支:trunk[email protected],但我只需要一个分支。

什么我需要做移植后得到的只有一个分支?

+1

也许工作的svndump,删除不需要的分支,让一个新的svn库,然后将其转换到Git的? – 2012-01-18 12:11:54

+0

好主意,但我如何管理倾销的文件?它看起来像二进制 – user1156128 2012-01-18 13:01:12

+0

'svnadmin的dump'生成一个文本文件,至少在仓库总是包含的文本文件。 – 2012-01-18 13:10:24

删除你不需要当然,分支。但是,你的修订61.

[email protected]存在,因为要导入的目录被换下之前松散的历史。在某种程度上,git svn并没有被视为历史的延续。因此它在该修订中记录了参考值,并重新开始。由于它是一次性转换,因此可以使用嫁接来连接历史记录,过滤分支来重写它,因此不需要嫁接文件(请参阅过滤分支文档),而不是删除现在无用的分支。