簡體   English   中英

通過Git-LFS從SVN遷移到Git

[英]SVN to Git migration with Git-LFS

我們有一個龐大的SVN存儲庫(約100GB),我們正嘗試將其遷移到Git。 問題是,該回購包含許多分散在文件夾樹中的二進制文件。

我們想到的第一件事是將二進制文件移至Git-LFS,但在此之前我們需要解決一些問題:

  1. 我們需要保留提交歷史記錄。 是否可以在以前的提交中用LFS文件指針替換二進制文件?
  2. 我們正在使用幾個分支。 在簽出期間,git-lfs是否會緩存現有的二進制文件,因此分支之間的簽出不會涉及一次又一次地重新下載那些二進制文件。
  3. Git-LFS是否支持在不同分支上只有一個二進制文件,還是應該為服務器上的每個分支復制每個二進制文件?
  4. 在結帳過程中是否可以對二進制文件進行部分結帳? 因此,如果需要的話,只會下載二進制文件的某些部分。
  5. 在服務器上,該二進制文件應如何存儲? 是否需要一個服務器應用程序來存儲這些二進制文件,否則簡單的HTTP / FTP服務器就可以了?

謝謝

我想我已經找到了答案,盡管我自己還沒有完成測試(第一步需要很長時間才能完成我們的存儲庫)。 訣竅來自於此Atlassian文檔:

https://confluence.atlassian.com/bitbucket/use-bfg-to-migrate-a-repo-to-git-lfs-834233484.html

這是特定於bitbucket的,但是我想它可以與任何git存儲庫一起使用。

步驟1:第一步是將SVN項目轉換為git。 可以使用git-svn完成,如下所述:

https://john.albin.net/git/convert-subversion-to-git

該頁面還描述了繼承作者並添加git作者允許的其他詳細信息的方式(真實姓名和電子郵件)。

步驟2:現在,按照上述Atlassian文檔中的說明,使用“ BFG Repo-Cleaner”以對git LFS的引用替換歷史記錄中的所有“大文件”。 這是執行某些事情的簡單工具,而git-filter-branch工具也可以做到。

我可以在此處提供分步說明,但是我只是從其他來源進行復制,而我自己還沒有嘗試過(現在運行)。 在這里看到結果后,我將再次更新。

編輯 :我差不多兩年前完成測試時就忘了更新,只是現在才注意到,因為我得到了支持。 從我的記憶中,我結束了使用git lfs migrate而不是BFG來將大型文件從存儲庫遷移到git LFS。 https://github.com/git-lfs/git-lfs/wiki/Tutorial

暫無
暫無

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

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