Document how the LFS calculations work with forking
Extracted as a research spike from Forked repositories do not deduplicate LFS objects (#370242 - closed)
Purpose
Document the current state of how GitLab calculates repository sizes in relation to LFS, and the behaviour when a repo is forked. We need to consider the actual size on disk of both repository and LFS, and the size we consider for billing.
- How is a repository size calculated when LFS objects are added to it?
- When the repository is forked, are only the pointers to LFS duplicated in the forked repo?
- What happens when we add a LFS object to the fork?
- When a MR containing the LFS object to the fork is merged, what happens to ownership of that LFS object and is it duplicated across both repos?
Scope
There may be behaviour we wish to change in the current process, but the scope of this issue is to understand the current storage calculations and billing calculations.
Deliverable
An update to the https://docs.gitlab.com/ee/topics/git/lfs/ documentation page describing the current behaviour.
Notes
- Useful video about GitLab LFS internals.
Edited by Sean Carroll