-
Patrick Steinhardt authored
Right now, all Git checks we have are implemented on top of the ChangeAccess class, which provides the infrastructure to check a single reference update. This is not a good fit for all checks though, given that some may be computed much more efficiently if all changes were batched together into a single call. One of these examples are the LFS checks, which have been retrofitted to match that interface by only executing them for the first reference. This may lead to wrong results (e.g. the user may arrange ref updates such that only the second ref introduced new dangling LFS pointers) and make for code that is hard to understand. To fix this issue, create new infrastructure for batched checks in the form of a new ChangesAccess class. In contrast to the ChangeAccess class, it hands over all changes at once to the respective checks instead of only passing over single references. Furthermore, the BaseChecker class is split up into two classes to check a single change and to check multiple changes in bulk. No functional change is yet expected from this commit given that no checks are moved over yet.
d1f648de