... | ... |
@@ -83,6 +83,29 @@ sub cmd { |
83 | 83 |
return ($self->bin, "--git-dir=$project"); |
84 | 84 |
} |
85 | 85 |
|
86 |
+sub commits_number { |
|
87 |
+ my ($self, $rep, $ref) = @_; |
|
88 |
+ |
|
89 |
+ # Command "git diff-tree" |
|
90 |
+ my @cmd = ($self->cmd($rep), 'shortlog', '-s', $ref); |
|
91 |
+ open my $fh, "-|", @cmd |
|
92 |
+ or croak 500, "Open git-shortlog failed"; |
|
93 |
+ my @commits_infos = map { chomp; $self->dec($_) } <$fh>; |
|
94 |
+ close $fh or croak 'Reading git-shortlog failed'; |
|
95 |
+ |
|
96 |
+ use Data::Dumper; |
|
97 |
+ warn Dumper \@commits_infos; |
|
98 |
+ |
|
99 |
+ my $commits_num = 0; |
|
100 |
+ for my $commits_info (@commits_infos) { |
|
101 |
+ if ($commits_info =~ /^ *([0-9]+)/) { |
|
102 |
+ $commits_num += $1; |
|
103 |
+ } |
|
104 |
+ } |
|
105 |
+ |
|
106 |
+ return $commits_num; |
|
107 |
+} |
|
108 |
+ |
|
86 | 109 |
sub file_type { |
87 | 110 |
my ($self, $mode) = @_; |
88 | 111 |
|
... | ... |
@@ -1,6 +1,8 @@ |
1 | 1 |
<% |
2 | 2 |
use Gitprep::API; |
3 | 3 |
|
4 |
+ my $ref = 'master'; |
|
5 |
+ |
|
4 | 6 |
# Parameters |
5 | 7 |
my $user = param('user'); |
6 | 8 |
my $repository = param('repository'); |
... | ... |
@@ -40,8 +42,10 @@ |
40 | 42 |
open my $fh, '-|', $git->cmd($rep), 'ls-tree', '-z', |
41 | 43 |
($show_sizes ? '-l' : ()), $tid |
42 | 44 |
or $api->croak('Open git-ls-tree failed'); |
43 |
- local $/ = "\0"; |
|
44 |
- @entries = map { chomp; $git->dec($_) } <$fh>; |
|
45 |
+ { |
|
46 |
+ local $/ = "\0"; |
|
47 |
+ @entries = map { chomp; $git->dec($_) } <$fh>; |
|
48 |
+ } |
|
45 | 49 |
close $fh |
46 | 50 |
or $api->croak(404, "Reading tree failed"); |
47 | 51 |
|
... | ... |
@@ -58,6 +62,9 @@ |
58 | 62 |
|
59 | 63 |
# Repository description |
60 | 64 |
my $desc = $git->repository_description($rep); |
65 |
+ |
|
66 |
+ # Commits number |
|
67 |
+ my $commits_number = $git->commits_number($rep, $ref); |
|
61 | 68 |
%> |
62 | 69 |
|
63 | 70 |
% layout 'new_common'; |
... | ... |
@@ -294,7 +301,11 @@ |
294 | 301 |
<div class="commit_number_left"> |
295 | 302 |
<a href="<%= url_for %>"><%= $repository %></a> |
296 | 303 |
</div> |
297 |
- <div class="commit_number_right">Commit number</div> |
|
304 |
+ <div class="commit_number_right"> |
|
305 |
+ <a href="<%= url_for("/$user/$repository/commits/master") %>"> |
|
306 |
+ <%= $commits_number %> commits |
|
307 |
+ </a> |
|
308 |
+ </div> |
|
298 | 309 |
</div> |
299 | 310 |
|
300 | 311 |
<div class="tree"> |