summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2019-03-22 18:38:08 +0000
committerStan Hu <stanhu@gmail.com>2019-03-22 18:38:08 +0000
commit7ffc79829194d3be18cf66017528a90b41586054 (patch)
treee09c42cfaf7fd166c8ddf28fefc6140e0c52f815
parent85a1acbe50a3db74d0298fc622170f0fd000988d (diff)
parente64589a370c9536f8701c4b7124242b2d1016ec1 (diff)
downloadgitlab-ce-7ffc79829194d3be18cf66017528a90b41586054.tar.gz
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
-rw-r--r--app/models/project.rb1
-rw-r--r--app/workers/project_cache_worker.rb1
-rw-r--r--changelogs/unreleased/refresh-commit-count-after-head-change.yml5
-rw-r--r--spec/models/project_spec.rb6
4 files changed, 13 insertions, 0 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 14fc158ede1..611c64c8f49 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -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")
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 328133e5c3c..1ea54eeb4f7 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -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)