Previously, the code assumed that if a metadata object is available on the server all file objects it points to are also available, which is a reasonable assumption in general.
However, a misbehaving prune operation can leave a repository in such a state with missing file objects.
This change allows the repository to recover by uploading such missing files if they are needed for the currently uploaded commits.
Previously, the code assumed that if a metadata object is available on the server all file objects it points to are also available, which is a reasonable assumption in general.
However, a misbehaving prune operation can leave a repository in such a state with missing file objects.
This change allows the repository to recover by uploading such missing files if they are needed for the currently uploaded commits.