Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-10-19 15:03:10 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-10-19 15:03:10 +0300
commitaa7271815e0d1a2bc5ef0a8bda7e15d14a6b4f8b (patch)
treebc89f80383e969f650b54465cd8e7cfb35837af5
parentd8ceec19623ec6121fe7465200ed9c108f97819a (diff)
Add latest changes from gitlab-org/gitlab@16-4-stable-ee
-rw-r--r--app/services/batched_git_ref_updates/project_cleanup_service.rb2
-rw-r--r--spec/services/batched_git_ref_updates/project_cleanup_service_spec.rb9
2 files changed, 10 insertions, 1 deletions
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