2012-01-18 167 views
4

我需要遷移的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

回答

2

刪除你不需要當然,分支。但是,你的修訂61.

[email protected]存在,因爲要導入的目錄被換下之前鬆散的歷史。在某種程度上,git svn並沒有被視爲歷史的延續。因此它在該修訂中記錄了參考值,並重新開始。由於它是一次性轉換,因此可以使用嫁接來連接歷史記錄,過濾分支來重寫它,因此不需要嫁接文件(請參閱過濾分支文檔),而不是刪除現在無用的分支。

相關問題