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
This commit is contained in:
Stan Hu 2019-03-22 18:38:08 +00:00
commit 7ffc798291
4 changed files with 13 additions and 0 deletions

View File

@ -1384,6 +1384,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")

View File

@ -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}")

View File

@ -0,0 +1,5 @@
---
title: Refresh commit count after repository head changes
merge_request: 26473
author:
type: fixed

View File

@ -2379,6 +2379,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)