【问题标题】:GIT LFS migration using BFG increase total repository size by 4x使用 BFG 迁移 GIT LFS 将总存储库大小增加 4 倍
【发布时间】:2021-10-10 17:34:07
【问题描述】:

我们正在将 5GB 存储库从 SVN 迁移到 GIT

SVN 到 GIT 的迁移

svn2git http://xxx/svn/yy --trunk trunk --nobranches --notags --username user --metadata --authors /xx/yyy/authors.txt

LFS 迁移

java -jar ../bfg-1.14.0.jar --convert-to-git-lfs "*.{png,zip,jar,xls,xlsx,ppt,pptx,fmb,pll,ttf,afm ,pfa,ttf,rdf,jpg,gif,tif,doc,docx,pdf,}" --no-blob-protection

git reflog expire --expire=now --all && git gc --prune=now

我们也试过

git reflog expire --expire=now --all && git gc --prune=now --aggressive 但这需要很长时间,并且在 99% 后崩溃

BFG 迁移后,GIT 存储库总共有 25 GByte 并且 .git/lfs 存储有 24 GB

为什么 LFS 存储变得如此之大,我们如何才能减小大小?

【问题讨论】:

    标签: git git-lfs bfg-repo-cleaner svn2git


    【解决方案1】:

    Git 存储数据的方式与 Git LFS 存储数据的方式之间存在一些差异。

    Git 通常会存储存储库的全部内容,并且在大多数情况下,它会以压缩和 deltified 的形式存储(即,将相似文件作为与其他相似文件的差异)。 Git LFS 存储未压缩和未删除的文件,但在正常使用中,它仅从服务器中检出当前工作树所需的文件

    在这种情况下,因为您正在进行转换,所以您将在磁盘上拥有所有 Git LFS 对象,而且它会很大。但是,在您将它们推送到服务器后,在正常使用中,用户在检出存储库时可能只会下载这些文件的一小部分,因此大小可能会小得多。如果您使用的是 Git LFS 2.10.0 或更高版本,您可以使用file:/// URL 从大型存储库中执行git clone,并且可能会看到结帐要小得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 2019-10-29
      • 1970-01-01
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多