Git LFS处理小文件的效果如何?

时间:2016-03-04 02:48:47

标签: git performance version-control git-lfs

Git LFS中存储的类型文件是否有最佳实践?特别是最小尺寸?

例如,一个10mb的音乐文件显然是合适的,但是一个25kb的png呢?是否值得投入LFS或者让Git处理它更好?

在将太多小文件检入LFS存储库时,我担心的是性能下降。 是否有关于LFS扩展如何与一堆较小的二进制文件相媲美的数据?建议仅存储超过特定大小阈值的文件吗?

1 个答案:

答案 0 :(得分:11)

我不希望给出确切的阈值。

LFS节省了与远程存储库同步需要交换的数据量。但是,只有大文件本身不更改时才会保存。实际上,对于更改的文件,您需要第二个rountrip来处理LFS对象上的更改。

因此,如果您的用例中没有更改(经常),您可以在LFS中包含较小的文件。特定的中断取决于服务器的I / O速度,主要取决于存储库和客户端之间的延迟和吞吐量。

在你的例子中,我仍然希望在png接近永不改变的情况下进行改进。一旦他们要在每次提交时(几乎)改变,甚至更大的文件可能不会从放入LFS中受益。

此外,典型文件越大,第二次往返的额外费用将变得越来越不重要。特别是当文件类(后缀)的大小在很大范围内变化和/或文件类中的更改频率覆盖范围很广时,您的问题可能没有明确的答案。