Backups with gitaly-backup and obsolete changesets
A consequence of the new backup logic that will become the only one in GitLab 14.10 is that only ancestors of known GitLab refs will get backed up. This means in particular that most obsolete changesets will be lost. The obvious exception would be those with a "keep-around" ref or other special GitLab ref.
This contradicts the inherent promise that a backup is full. The problem does not exist with Git, because it is generally assumed that unreachable commits are as good as lost (which is why GitLab has keep-around refs in the first place).
For reference, the actual sequence performed by gitaly-backup
is
- Obtain the full list of references and their target commits by calling the
ListRefs
gRPC method - Feed the list of references to the
CreateBundleFromRefsList
gRPC method to actually produce the backup. Optionally also pass a specifications (such as^1234ca56fe78beef
) for incrementality.
Edited by Georges Racinet