[英]Migrating from SVN to GIT
將svn遷移到git。 項目結構如下svn.dcit.company.com/dcit/projectname/featurename/branches/branch1
現在我一直試圖為branch1做git svn clone整天都沒有成功。 從git svn clone http ... / branch1到互聯網上提到的所有hack,我都嘗試了所有方法。
每當我收到此錯誤“ W:忽略SVN中的錯誤,路徑可能不存在:(160013):文件系統沒有任何項:'... path not found” IT最終會獲取一些文件,但是這些文件來自相似的名稱但是錯誤的項目! 請幫忙
對於一次性遷移, git-svn
不是用於轉換存儲庫或存儲庫部件的正確工具。 這是一個偉大的工具,如果你想使用的Git為現有SVN服務器前端,但對於一次性轉換,你不應該使用git-svn
,但svn2git
這是該用例更加適合。
有很多名為svn2git
工具,最好的一種可能是來自https://github.com/svn-all-fast-export/svn2git的KDE工具。 我強烈建議您使用該svn2git
工具。 這是我所知道的最好的,它可以很靈活地處理其規則文件。
您將可以輕松配置svn2git
的規則文件,以從當前SVN布局中生成所需的結果。 您甚至可以一次運行從SVN中的各個項目中生成多個Git存儲庫。
如果您不是100%知道存儲庫的歷史記錄,請從http://blog.hartwork.org/?p=763中 svneverever
,這是在將SVN存儲庫遷移到Git時調查其歷史記錄的絕佳工具。
盡管開始使用git-svn
更容易,但是還有以下一些原因,為什么使用KDE svn2git
代替git-svn
更具優勢:
svn2git
(如果使用了正確的歷史記錄)可以更好,更干凈地重建歷史記錄,對於具有分支和合並等更復雜歷史記錄的情況尤其如此 git-svn
標簽會包含一個額外的空提交,這也會使它們不成為分支的一部分,因此,除非您將--tags
交給命令, --tags
正常的fetch
將不會獲取它們,因為默認情況下,還會僅獲取指向獲取的分支的標簽。 帶有正確的svn2git標簽是它們所屬的位置 svn2git
配置,而使用git-svn
最終會丟失歷史記錄 svn2git
您還可以輕松地將一個SVN存儲庫拆分為多個Git存儲庫 svn2git
比git-svn
快svn2git
倍 您會看到git-svn
較差而KDE svn2git
較差的原因很多。 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.