簡體   English   中英

從SVN遷移到GIT

[英]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中的分支
  • 使用git-svn標簽會包含一個額外的空提交,這也會使它們不成為分支的一部分,因此,除非您將--tags交給命令, --tags正常的fetch將不會獲取它們,因為默認情況下,還會僅獲取指向獲取的分支的標簽。 帶有正確的svn2git標簽是它們所屬的位置
  • 如果您在SVN中更改了布局,則可以輕松地使用svn2git配置,而使用git-svn最終會丟失歷史記錄
  • 使用svn2git您還可以輕松地將一個SVN存儲庫拆分為多個Git存儲庫
  • 或將同一SVN根目錄中的多個SVN存儲庫輕松組合到一個Git存儲庫中
  • 正確的svn2gitgit-svnsvn2git

您會看到git-svn較差而KDE svn2git較差的原因很多。 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM