Improve Commits stats code
This commit is contained in:
parent
b28ab8962b
commit
f0a6fbaae3
2 changed files with 11 additions and 12 deletions
|
@ -2,12 +2,12 @@
|
||||||
.row
|
.row
|
||||||
.span5
|
.span5
|
||||||
%h4
|
%h4
|
||||||
Stats for #{@project.root_ref}:
|
Stats:
|
||||||
%p
|
%p
|
||||||
%b Total commits:
|
%b Total commits:
|
||||||
%span= @stats.commits_count
|
%span= @stats.commits_count
|
||||||
%p
|
%p
|
||||||
%b Total files:
|
%b Total files in #{@project.root_ref}:
|
||||||
%span= @stats.files_count
|
%span= @stats.files_count
|
||||||
%p
|
%p
|
||||||
%b Authors:
|
%b Authors:
|
||||||
|
@ -30,10 +30,12 @@
|
||||||
:javascript
|
:javascript
|
||||||
$(function(){
|
$(function(){
|
||||||
var labels = [#{@graph.labels.to_json}];
|
var labels = [#{@graph.labels.to_json}];
|
||||||
|
var commits = [#{@graph.commits.join(', ')}];
|
||||||
var r = Raphael('activity-chart');
|
var r = Raphael('activity-chart');
|
||||||
r.text(160, 10, "Commit activity for last #{@graph.weeks} weeks").attr({ font: "13px sans-serif" });
|
r.text(160, 10, "Commit activity for last #{@graph.weeks} weeks").attr({ font: "13px sans-serif" });
|
||||||
r.barchart(
|
r.barchart(
|
||||||
10, 10, 400, 160,
|
10, 10, 400, 160,
|
||||||
[[#{@graph.commits.join(', ')}]]
|
[commits],
|
||||||
|
{colors:["#456"]}
|
||||||
).label(labels, true);
|
).label(labels, true);
|
||||||
})
|
})
|
||||||
|
|
|
@ -15,7 +15,8 @@ module Gitlab
|
||||||
end
|
end
|
||||||
|
|
||||||
def files_count
|
def files_count
|
||||||
repo.git.sh("git ls-tree -r --name-only #{ref} | wc -l").first.to_i
|
args = [ref, '-r', '--name-only' ]
|
||||||
|
repo.git.run(nil, 'ls-tree', nil, {}, args).split("\n").count
|
||||||
end
|
end
|
||||||
|
|
||||||
def authors_count
|
def authors_count
|
||||||
|
@ -52,15 +53,11 @@ module Gitlab
|
||||||
|
|
||||||
def build_graph n = 4
|
def build_graph n = 4
|
||||||
from, to = (Date.today - n.weeks), Date.today
|
from, to = (Date.today - n.weeks), Date.today
|
||||||
|
args = ['--all', "--since=#{from.to_s(:date)}", '--format=%ad' ]
|
||||||
|
rev_list = repo.git.run(nil, 'rev-list', nil, {}, args).split("\n")
|
||||||
|
|
||||||
format = "--pretty=format:'%h|%at|%ai|%aE'"
|
commits_dates = rev_list.values_at(* rev_list.each_index.select {|i| i.odd?})
|
||||||
commits_strings = repo.git.sh("git rev-list --since #{from.to_s(:date)} #{format} #{ref} | grep -v commit")[0].split("\n")
|
commits_dates = commits_dates.map { |date_str| Time.parse(date_str).to_date.to_s(:date) }
|
||||||
|
|
||||||
commits_dates = commits_strings.map do |string|
|
|
||||||
data = string.split("|")
|
|
||||||
date = data[2]
|
|
||||||
Time.parse(date).to_date.to_s(:date)
|
|
||||||
end
|
|
||||||
|
|
||||||
commits_per_day = from.upto(to).map do |day|
|
commits_per_day = from.upto(to).map do |day|
|
||||||
commits_dates.count(day.to_date.to_s(:date))
|
commits_dates.count(day.to_date.to_s(:date))
|
||||||
|
|
Loading…
Reference in a new issue