Optimize merge request keep-around refs
This issue is part of phase 1 of Keep-around ref optimization/attribution (&12961)
MergeRequest
app/models/merge_request.rb:2160: project.repository.keep_around(self.merge_commit_sha, source: self.class.name)
We should not be keeping merge-head commits. These are already kept by refs/merge-requests/<iid>/merge
CleaupRefsService
app/services/merge_requests/cleanup_refs_service.rb:69: repository.keep_around(ref_head_sha, merge_ref_sha, source: self.class.name)
Merge requests create all their own keep-arounds. We should not be adding these keep-arounds again.
PublishService/DiffNote
app/services/draft_notes/publish_service.rb:107: project.repository.keep_around(*shas, source: self.class.name)
app/models/diff_note.rb:192: repository.keep_around(*shas, source: self.class.name)
Merge requests and merge request diffs should be keeping all commits relevant to the MR. So there should be no need to create keep-arounds for any MR related notes.
Edited by James Fargher