diff options
author | Stan Hu <stanhu@gmail.com> | 2016-07-13 06:41:06 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2016-07-13 06:49:58 -0700 |
commit | 0d4b1bb752c65946c89b4240602e91b06c3fad36 (patch) | |
tree | ce0b2a918574db6bfac4c15fb0ceb9a84007d8c0 | |
parent | d5c715c9cc23a403d908e4686db152d8316ac684 (diff) | |
download | gitlab-ce-0d4b1bb752c65946c89b4240602e91b06c3fad36.tar.gz |
Refresh branch cache after `git gc`
Possible workaround for #15392
-rw-r--r-- | CHANGELOG | 2 | ||||
-rw-r--r-- | app/workers/git_garbage_collect_worker.rb | 4 | ||||
-rw-r--r-- | spec/workers/git_garbage_collect_worker_spec.rb | 5 |
3 files changed, 8 insertions, 3 deletions
diff --git a/CHANGELOG b/CHANGELOG index a50edf1a797..fa6044bd87c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,7 +4,7 @@ v 8.10.0 (unreleased) - Expose {should,force}_remove_source_branch (Ben Boeckel) - Fix commit builds API, return all builds for all pipelines for given commit. !4849 - 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 - Optimize system note visibility checking by memoizing the visible reference count !5070 - Add Application Setting to configure default Repository Path for new projects diff --git a/app/workers/git_garbage_collect_worker.rb b/app/workers/git_garbage_collect_worker.rb index 2fa3c838f55..a6cefd4d601 100644 --- a/app/workers/git_garbage_collect_worker.rb +++ b/app/workers/git_garbage_collect_worker.rb @@ -8,7 +8,9 @@ class GitGarbageCollectWorker project = Project.find(project_id) 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.branch_names + project.repository.has_visible_content? end end diff --git a/spec/workers/git_garbage_collect_worker_spec.rb b/spec/workers/git_garbage_collect_worker_spec.rb index a9cce8b8b59..c9f5aae0815 100644 --- a/spec/workers/git_garbage_collect_worker_spec.rb +++ b/spec/workers/git_garbage_collect_worker_spec.rb @@ -16,7 +16,10 @@ describe GitGarbageCollectWorker do project.repository_storage_path, project.path_with_namespace). 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) end |