Store commit count in project table
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
67ca5a53f6
commit
f0116f1335
|
|
@ -276,4 +276,18 @@ module ProjectsHelper
|
|||
def readme_cache_key
|
||||
[@project.id, @project.commit.sha, "readme"].join('-')
|
||||
end
|
||||
|
||||
def round_commit_count(project)
|
||||
count = project.commit_count
|
||||
|
||||
if count > 10000
|
||||
'10000+'
|
||||
elsif count > 5000
|
||||
'5000+'
|
||||
elsif count > 1000
|
||||
'1000+'
|
||||
else
|
||||
count
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -683,6 +683,10 @@ class Project < ActiveRecord::Base
|
|||
update_attribute(:repository_size, repository.size)
|
||||
end
|
||||
|
||||
def update_commit_count
|
||||
update_attribute(:commit_count, repository.commit_count)
|
||||
end
|
||||
|
||||
def forks_count
|
||||
ForkedProjectLink.where(forked_from_project_id: self.id).count
|
||||
end
|
||||
|
|
|
|||
|
|
@ -94,18 +94,6 @@ class Repository
|
|||
gitlab_shell.rm_tag(path_with_namespace, tag_name)
|
||||
end
|
||||
|
||||
def round_commit_count
|
||||
if commit_count > 10000
|
||||
'10000+'
|
||||
elsif commit_count > 5000
|
||||
'5000+'
|
||||
elsif commit_count > 1000
|
||||
'1000+'
|
||||
else
|
||||
commit_count
|
||||
end
|
||||
end
|
||||
|
||||
def branch_names
|
||||
cache.fetch(:branch_names) { raw_repository.branch_names }
|
||||
end
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ class GitPushService
|
|||
|
||||
project.ensure_satellite_exists
|
||||
project.repository.expire_cache
|
||||
project.update_repository_size
|
||||
|
||||
if push_remove_branch?(ref, newrev)
|
||||
@push_commits = []
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
.repo-info
|
||||
- unless project.empty_repo?
|
||||
= link_to pluralize(project.repository.round_commit_count, 'commit'), namespace_project_commits_path(project.namespace, project, project.default_branch)
|
||||
= link_to pluralize(round_commit_count(project), 'commit'), namespace_project_commits_path(project.namespace, project, project.default_branch)
|
||||
·
|
||||
= link_to pluralize(project.repository.branch_names.count, 'branch'), namespace_project_branches_path(project.namespace, project)
|
||||
·
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
%ul.nav.nav-pills
|
||||
%li
|
||||
= link_to namespace_project_commits_path(@project.namespace, @project, @ref || @repository.root_ref) do
|
||||
= pluralize(number_with_delimiter(@repository.commit_count), 'commit')
|
||||
= pluralize(number_with_delimiter(@project.commit_count), 'commit')
|
||||
%li
|
||||
= link_to namespace_project_branches_path(@project.namespace, @project) do
|
||||
= pluralize(number_with_delimiter(@repository.branch_names.count), 'branch')
|
||||
|
|
|
|||
|
|
@ -4,6 +4,9 @@ class ProjectCacheWorker
|
|||
sidekiq_options queue: :default
|
||||
|
||||
def perform(project_id)
|
||||
Project.find(project_id).repository.build_cache
|
||||
project = Project.find(project_id)
|
||||
project.update_repository_size
|
||||
project.update_commit_count
|
||||
project.repository.build_cache
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ class RepositoryImportWorker
|
|||
project.import_finish
|
||||
project.save
|
||||
project.satellite.create unless project.satellite.exists?
|
||||
project.update_repository_size
|
||||
ProjectCacheWorker.perform_async(project.id)
|
||||
Gitlab::BitbucketImport::KeyDeleter.new(project).execute if project.import_type == 'bitbucket'
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
class AddCommitsCountToProject < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :projects, :commit_count, :integer, default: 0
|
||||
end
|
||||
end
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20150713160110) do
|
||||
ActiveRecord::Schema.define(version: 20150717130904) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
|
@ -374,6 +374,7 @@ ActiveRecord::Schema.define(version: 20150713160110) do
|
|||
t.integer "star_count", default: 0, null: false
|
||||
t.string "import_type"
|
||||
t.string "import_source"
|
||||
t.integer "commit_count", default: 0
|
||||
end
|
||||
|
||||
add_index "projects", ["created_at", "id"], name: "index_projects_on_created_at_and_id", using: :btree
|
||||
|
|
|
|||
|
|
@ -20,6 +20,10 @@ class RepositoryCache
|
|||
end
|
||||
|
||||
def exist?(key)
|
||||
backend.exist?(key)
|
||||
backend.exist?(cache_key(key))
|
||||
end
|
||||
|
||||
def read(key)
|
||||
backend.read(cache_key(key))
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue