Commit 0d4b1bb7 authored by Stan Hu's avatar Stan Hu

Refresh branch cache after `git gc`

Possible workaround for #15392
parent d5c715c9
...@@ -4,7 +4,7 @@ v 8.10.0 (unreleased) ...@@ -4,7 +4,7 @@ v 8.10.0 (unreleased)
- Expose {should,force}_remove_source_branch (Ben Boeckel) - Expose {should,force}_remove_source_branch (Ben Boeckel)
- Fix commit builds API, return all builds for all pipelines for given commit. !4849 - Fix commit builds API, return all builds for all pipelines for given commit. !4849
- Replace Haml with Hamlit to make view rendering faster. !3666 - Replace Haml with Hamlit to make view rendering faster. !3666
- Expire the branch cache after `git gc` runs - Refresh the branch cache after `git gc` runs
- Refactor repository paths handling to allow multiple git mount points - Refactor repository paths handling to allow multiple git mount points
- Optimize system note visibility checking by memoizing the visible reference count !5070 - Optimize system note visibility checking by memoizing the visible reference count !5070
- Add Application Setting to configure default Repository Path for new projects - Add Application Setting to configure default Repository Path for new projects
......
...@@ -8,7 +8,9 @@ class GitGarbageCollectWorker ...@@ -8,7 +8,9 @@ class GitGarbageCollectWorker
project = Project.find(project_id) project = Project.find(project_id)
gitlab_shell.gc(project.repository_storage_path, project.path_with_namespace) gitlab_shell.gc(project.repository_storage_path, project.path_with_namespace)
# Expire the branch cache in case garbage collection caused a ref lookup to fail # Refresh the branch cache in case garbage collection caused a ref lookup to fail
project.repository.after_create_branch project.repository.after_create_branch
project.repository.branch_names
project.repository.has_visible_content?
end end
end end
...@@ -16,7 +16,10 @@ describe GitGarbageCollectWorker do ...@@ -16,7 +16,10 @@ describe GitGarbageCollectWorker do
project.repository_storage_path, project.repository_storage_path,
project.path_with_namespace). project.path_with_namespace).
and_return(true) and_return(true)
expect_any_instance_of(Repository).to receive(:after_create_branch) expect_any_instance_of(Repository).to receive(:after_create_branch).and_call_original
expect_any_instance_of(Repository).to receive(:branch_names).and_call_original
expect_any_instance_of(Repository).to receive(:branch_count).and_call_original
expect_any_instance_of(Repository).to receive(:has_visible_content?).and_call_original
subject.perform(project.id) subject.perform(project.id)
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment