如何将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]
,但我只需要一个分支。
什么我需要做移植后得到的只有一个分支?
答
删除你不需要当然,分支。但是,你的修订61.
的[email protected]
存在,因为要导入的目录被换下之前松散的历史。在某种程度上,git svn并没有被视为历史的延续。因此它在该修订中记录了参考值,并重新开始。由于它是一次性转换,因此可以使用嫁接来连接历史记录,过滤分支来重写它,因此不需要嫁接文件(请参阅过滤分支文档),而不是删除现在无用的分支。
也许工作的svndump,删除不需要的分支,让一个新的svn库,然后将其转换到Git的? – 2012-01-18 12:11:54
好主意,但我如何管理倾销的文件?它看起来像二进制 – user1156128 2012-01-18 13:01:12
'svnadmin的dump'生成一个文本文件,至少在仓库总是包含的文本文件。 – 2012-01-18 13:10:24