From 63440d06647d6e2e6fb0fa9074cabf0a96cc66d3 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Fri, 22 Mar 2019 18:38:08 +0000 Subject: [PATCH] Merge branch 'refresh-commit-count-after-head-change' into 'master' Refresh commit count after repository head changes Closes #59346 See merge request gitlab-org/gitlab-ce!26473 (cherry picked from commit 7ffc79829194d3be18cf66017528a90b41586054) e64589a3 Refresh commit count after repository head changes --- app/models/project.rb | 1 + app/workers/project_cache_worker.rb | 1 + .../unreleased/refresh-commit-count-after-head-change.yml | 5 +++++ spec/models/project_spec.rb | 6 ++++++ 4 files changed, 13 insertions(+) create mode 100644 changelogs/unreleased/refresh-commit-count-after-head-change.yml diff --git a/app/models/project.rb b/app/models/project.rb index 7d6f7fd2c58..4039af7a330 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1378,6 +1378,7 @@ class Project < ActiveRecord::Base repository.raw_repository.write_ref('HEAD', "refs/heads/#{branch}") repository.copy_gitattributes(branch) repository.after_change_head + ProjectCacheWorker.perform_async(self.id, [], [:commit_count]) reload_default_branch else errors.add(:base, "Could not change HEAD: branch '#{branch}' does not exist") diff --git a/app/workers/project_cache_worker.rb b/app/workers/project_cache_worker.rb index d27b5e62574..b31099bc670 100644 --- a/app/workers/project_cache_worker.rb +++ b/app/workers/project_cache_worker.rb @@ -27,6 +27,7 @@ class ProjectCacheWorker # rubocop: enable CodeReuse/ActiveRecord def update_statistics(project, statistics = []) + return if Gitlab::Database.read_only? return unless try_obtain_lease_for(project.id, :update_statistics) Rails.logger.info("Updating statistics for project #{project.id}") diff --git a/changelogs/unreleased/refresh-commit-count-after-head-change.yml b/changelogs/unreleased/refresh-commit-count-after-head-change.yml new file mode 100644 index 00000000000..27e278958b8 --- /dev/null +++ b/changelogs/unreleased/refresh-commit-count-after-head-change.yml @@ -0,0 +1,5 @@ +--- +title: Refresh commit count after repository head changes +merge_request: 26473 +author: +type: fixed diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 71bd7972436..3beddaeddbd 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -2388,6 +2388,12 @@ describe Project do project.change_head(project.default_branch) end + it 'updates commit count' do + expect(ProjectCacheWorker).to receive(:perform_async).with(project.id, [], [:commit_count]) + + project.change_head(project.default_branch) + end + it 'copies the gitattributes' do expect(project.repository).to receive(:copy_gitattributes).with(project.default_branch) project.change_head(project.default_branch) -- GitLab