Migrate Gitlab::Git::LfsChanges
Stages:
-
~"Client Preparation": #980 (closed) -
~"Client Implementation": #1048 (closed) -
~"Acceptance Testing": #1103 (closed) #1104 (closed)
RPC Endpoints:
Endpoint::Name
Known Client Routes:
- during Git push to a repo with LFS enabled we check for missing LFS objects with LfsChanges#new_pointers
This class has two public methods, both of which return a stream of LFS pointer blobs (i.e. guaranteed-small Git blobs).
Gitlab::Git::LfsChanges#new_pointers takes an array argument not_in
; the array length should not exceed 100. https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14479/diffs#35a52d109f095621d0a18103ade881f3bba81e10
There are a few challenges. Most importantly, the LfsChanges class is not being used 100% yet. Some of the things that call it are still WIP in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14479 . It would be nice to migrate this class before that MR gets revived and the requirements change.
Related to the 'half of it is not used' problem is that the current tests in gitlab-ce do not stand on their own. They only assert that LfsChanges interacts with other classes. These assertions will become false by default once we migrate the class.