From aa7271815e0d1a2bc5ef0a8bda7e15d14a6b4f8b Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 19 Oct 2023 12:03:10 +0000 Subject: Add latest changes from gitlab-org/gitlab@16-4-stable-ee --- app/services/batched_git_ref_updates/project_cleanup_service.rb | 2 +- .../batched_git_ref_updates/project_cleanup_service_spec.rb | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/services/batched_git_ref_updates/project_cleanup_service.rb b/app/services/batched_git_ref_updates/project_cleanup_service.rb index f9518cad975..7367c8be1d1 100644 --- a/app/services/batched_git_ref_updates/project_cleanup_service.rb +++ b/app/services/batched_git_ref_updates/project_cleanup_service.rb @@ -28,7 +28,7 @@ module BatchedGitRefUpdates refs = batch.map(&:ref) refs.each_slice(GITALY_BATCH_SIZE) do |refs_to_delete| - project.repository.delete_refs(*refs_to_delete) + project.repository.delete_refs(*refs_to_delete.uniq) end total_deletes += refs.count diff --git a/spec/services/batched_git_ref_updates/project_cleanup_service_spec.rb b/spec/services/batched_git_ref_updates/project_cleanup_service_spec.rb index dcdfdfade3c..e8ac9588ef3 100644 --- a/spec/services/batched_git_ref_updates/project_cleanup_service_spec.rb +++ b/spec/services/batched_git_ref_updates/project_cleanup_service_spec.rb @@ -53,6 +53,15 @@ RSpec.describe BatchedGitRefUpdates::ProjectCleanupService, feature_category: :g expect(test_refs(project2)).to include('refs/test/project2-ref1') end + it 'handles duplicates' do + BatchedGitRefUpdates::Deletion.create!(project_id: project1.id, ref: 'refs/test/some-duplicate') + BatchedGitRefUpdates::Deletion.create!(project_id: project1.id, ref: 'refs/test/some-duplicate') + + service.execute + + expect(test_refs(project1)).not_to include('refs/test/some-duplicate') + end + it 'marks the processed BatchedGitRefUpdates::Deletion as processed' do service.execute -- cgit v1.2.3