2016-08-09 143 views
7

我們有一個巨大的SVN存儲庫(〜100GB),我們正嘗試遷移到Git。問題在於,回購包含大量遍佈文件夾樹的二進制文件。使用Git-LFS將SVN轉換爲Git

,我們首先想到的就是把二進制移動到Git的-LFS,但有一些是我們需要解決的問題之前:

  1. 我們需要繼續提交歷史。是否有可能在以前的提交中用LFS文件指針替換二進制文件?
  2. 我們正在使用多個分支。在結帳期間,git-lfs是否會緩存現有的二進制文件,因此在分支之間簽出不會涉及重複下載這些二進制文件。
  3. Git-LFS支持跨不同分支有一個二進制文件,還是應該爲服務器上的每個分支複製每個二進制文件?
  4. 在結賬過程中是否可以對二進制文件進行部分結帳?因此,如果需要的話,只有部分二進制文件會被下載。
  5. 在服務器上,這個二進制文件應該如何存儲?是否有一個服務器應用程序需要存儲這些二進制文件,或簡單的HTTP/FTP服務器會做?

感謝

回答

0

我想我已經找到了這個答案,但沒有完成測試它自己(的第一步需要許多小時我們的代碼庫)。訣竅在於從這個Atlassian的文檔:

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

這是專門針對到位桶,但我想它會與任何的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工具也可以完成的一些更簡單的工具。

我可以在這裏給出分步說明,但我只是從其他來源進行復制,而我自己還沒有真正嘗試過(現在正在運行)。當我在這裏看到結果時,我會再次更新。