2017-03-10 53 views
2

我正在從svn存儲庫遷移到git。 這個svn倉庫有svn-externals,要保存在svn倉庫中。這些外部版本在歷史記錄中進行版本控制和標記,並且是隻讀的。 如何正確遷移並在新的git存儲庫中正確設置svn-externals?從svn遷移到保持svn-externals的git

我正在查看「git svn propset」,git submodules,subtree merges。但是我怎樣才能建立這樣的存儲庫?

+0

我想你不能做「git svn propset」跟蹤svn:外部,與git,對不對? –

+0

'git svn propset'在Git中沒有做任何事情,它只是在跟蹤的SVN倉庫中設置SVN屬性。您可以使用它來管理SVN回購跟蹤的'svn:externals',但它對Git克隆沒有任何影響。 – Vampire

回答

0

另外,我建議: 使用這個簡單的老python腳本的修改版本,即工作: https://github.com/eneroth/git-externals 該腳本會檢查出所有的svn:以前在子目錄中所述的在.gitexternals的外部文件 問題是檢查out版本是頭,而不是git倉庫的一部分

我會使用一個單獨的文件來存儲所有svn版本。這個文件將被存儲在git中。因此,每次我們進行更新時, 此文件將使用最新的提交進行更新。腳本中的選項將允許將該文件更新到最新版本的外部。 將修改腳本以下載存儲在此文件中的版本。 在這種情況下,分支和標籤的版本也會固定爲外部。 對於遷移的歷史數據,不確定這種方法是否可行。

我會在子模塊的情況下使用這個腳本,它非常靈活。但在這種情況下,我們將所有的外部鏡像git