我们目前正在 Fossil repos 中跟踪 Siemens PLC 程序(TIA 项目)。现在我们必须将所有存储库移动到 Bitbucket,因此我开始测试从 Fossil 到 Git 的转换,因为 Bitbucket 仅支持 Git。
关于我们的存储库的一个特别之处是,我们在其中跟踪整个项目,包括 2 个二进制项目文件,这样我们就可以从在 TIA(西门子 IDE)中打开所需的存储库中恢复整个项目。这 2 个文件不是很大(1 个在 5-10MB 之间,一个在 1MB 左右),但是随着几年来项目的发展,我们有很多提交。
对于我们的一个项目,使用 Fossil export --git 的转换已成功完成。
但是……她来了我的观点 1:原始 Fossil 存储库的大小约为 600MB。生成的 Git 存储库现在的大小约为 1.5GB,这意味着几乎是 Fossil 存储库的 3 倍。有人知道为什么吗?我最好的猜测是,Fossil 似乎只跟踪差异工件——即使是二进制文件,而 Git 总是跟踪整个文件。还是 Fossil 只是压缩得更好?
Bitbucket 仅允许 repo 大小 < 2GB。因此,当将这个项目原样迁移到 Bitbucket 时,我们很快就会遇到问题。因此,我想通过 Git LFS 测试跟踪 2 个二进制文件。我使用 BFG 按照此处提供的指南转换仓库的历史记录: https ://docs.gitlab.com/ee/topics/git/lfs/migrate_to_git_lfs.html ,但我将仓库镜像到本地的另一个地方为我还没有在任何服务器上。
这让我想到了第 2 点:在运行 BFG 和 git reflog/gc 之后,我最终得到了一个较小的 repo,但 LFS 对象文件夹现在约为 3.7GB(到底是什么?)。到目前为止,我用谷歌搜索了很多,但我找不到这个奇怪的事情的充分解释。有谁知道是什么原因?
谢谢大家:-)