summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gerhardt <code@dgerhardt.net>2015-07-24 16:09:19 +0200
committerValery Sizov <vsv2711@gmail.com>2015-07-28 14:41:14 +0300
commit4a3f3c938a738b368e37d7f7733814309eee5151 (patch)
tree51107c6de19b390bf8c35be2bba4b2fdce1c779e
parentbf0a5cf358c8545712ea0606d53c3bdb0d2fb59a (diff)
downloadgitlab-ce-4a3f3c938a738b368e37d7f7733814309eee5151.tar.gz
Add rake task 'gitlab:update_commit_count'
Starting with migration `20150717130904` commit count is stored in the database. For existing projects it defaults to `0` and is updated to the correct value when commits are pushed. The newly introduced rake task updates the commit count for all projects which have not been updated yet. Refs !986, !989, #2040.
-rw-r--r--CHANGELOG1
-rw-r--r--lib/tasks/gitlab/update_commit_count.rake20
2 files changed, 21 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index cbc368a7803..e413883e20a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
v 7.14.0 (unreleased)
- Fix Error 500 when browsing projects with no HEAD (Stan Hu)
+ - Add rake task 'gitlab:update_commit_count' (Daniel Gerhardt)
- Fix full screen mode for snippet comments (Daniel Gerhardt)
- Fix 404 error in files view after deleting the last file in a repository (Stan Hu)
- Fix label read access for unauthenticated users (Daniel Gerhardt)
diff --git a/lib/tasks/gitlab/update_commit_count.rake b/lib/tasks/gitlab/update_commit_count.rake
new file mode 100644
index 00000000000..9b636f12d9f
--- /dev/null
+++ b/lib/tasks/gitlab/update_commit_count.rake
@@ -0,0 +1,20 @@
+namespace :gitlab do
+ desc "GitLab | Update commit count for projects"
+ task update_commit_count: :environment do
+ projects = Project.where(commit_count: 0)
+ puts "#{projects.size} projects need to be updated. This might take a while."
+ ask_to_continue unless ENV['force'] == 'yes'
+
+ projects.find_each(batch_size: 100) do |project|
+ print "#{project.name_with_namespace.yellow} ... "
+
+ unless project.repo_exists?
+ puts "skipping, because the repo is empty".magenta
+ next
+ end
+
+ project.update_commit_count
+ puts project.commit_count.to_s.green
+ end
+ end
+end