| ... | ... |
@@ -30,9 +30,19 @@ |
| 30 | 30 |
$commit->{parent},
|
| 31 | 31 |
$commit->{parents}
|
| 32 | 32 |
); |
| 33 |
+ my $difftrees_h = {};
|
|
| 34 |
+ for my $difftree (@$difftrees) {
|
|
| 35 |
+ my $file = $difftree->{file};
|
|
| 36 |
+ $difftrees_h->{$file} = $difftree;
|
|
| 37 |
+ } |
|
| 33 | 38 |
|
| 34 | 39 |
# Get blob diffs |
| 35 | 40 |
my $blobdiffs = $git->blobdiffs($user, $project, $from_id, $id, $difftrees) || []; |
| 41 |
+ my $blobdiffs_h = {};
|
|
| 42 |
+ for my $blobdiff (@$blobdiffs) {
|
|
| 43 |
+ my $file = $blobdiff->{file};
|
|
| 44 |
+ $blobdiffs_h->{$file} = $blobdiff;
|
|
| 45 |
+ } |
|
| 36 | 46 |
|
| 37 | 47 |
# Branches |
| 38 | 48 |
my $branch_refs = $git->references($user, $project, 'heads'); |
| ... | ... |
@@ -108,7 +118,7 @@ |
| 108 | 118 |
</div> |
| 109 | 119 |
% } |
| 110 | 120 |
</div> |
| 111 |
- <div class="border-gray" style="border-bottom-left-radius:5px;border-bottom-right-radius:5px"> |
|
| 121 |
+ <div class="border-gray" style="border-bottom-left-radius:5px;border-bottom-right-radius:5px;margin-bottom:10px;"> |
|
| 112 | 122 |
<div class="row"> |
| 113 | 123 |
<div class="span4 padding5"> |
| 114 | 124 |
<span><b><%= $commit->{author_name} %></b></span>
|
| ... | ... |
@@ -137,21 +147,31 @@ |
| 137 | 147 |
</div> |
| 138 | 148 |
</div> |
| 139 | 149 |
</div> |
| 140 |
- |
|
| 150 |
+ |
|
| 151 |
+ <div style="margin-bottom:5px"> |
|
| 152 |
+ Showing <b><%= @$difftrees %> changed files</b> |
|
| 153 |
+ </div> |
|
| 141 | 154 |
<%= include '/include/difftree', id => $commit->{id}, from_id => $commit->{parent},
|
| 142 | 155 |
difftrees => $difftrees, parents => $commit->{parents}, project_ns => $project %>
|
| 143 | 156 |
|
| 144 | 157 |
<div> |
| 145 |
- % for (my $i = 0; $i < @$blobdiffs; $i++) {
|
|
| 146 |
- % my $blob_diff = $blobdiffs->[$i]; |
|
| 147 |
- <div> |
|
| 158 |
+ % for my $file (sort keys %$difftrees_h) {
|
|
| 159 |
+ % my $blob_diff = $blobdiffs_h->{$file};
|
|
| 160 |
+ % if ($blob_diff) {
|
|
| 148 | 161 |
% my $lines = $blob_diff->{lines};
|
| 149 | 162 |
% my $file = $blob_diff->{file};
|
| 150 | 163 |
% my $from_file = $blob_diff->{from_file};
|
| 151 | 164 |
% $from_file = $file unless defined $from_file; |
| 152 | 165 |
% my $status = $blob_diff->{status};
|
| 153 | 166 |
%= include '/include/blobdiff_body', file => $file, from_file => $from_file, status => $status, lines => $blob_diff->{lines}, project_ns => $project;
|
| 154 |
- </div> |
|
| 167 |
+ % } else {
|
|
| 168 |
+ <div class="border-gray bk-gray-light" style="border-bottom:none;padding:10px"> |
|
| 169 |
+ <%= $file %> |
|
| 170 |
+ </div> |
|
| 171 |
+ <div class="border-gray" style="padding:10px"> |
|
| 172 |
+ No changes. Empty file is added. |
|
| 173 |
+ </div> |
|
| 174 |
+ % } |
|
| 155 | 175 |
% } |
| 156 | 176 |
</div> |
| 157 | 177 |
</div> |
| ... | ... |
@@ -127,6 +127,9 @@ |
| 127 | 127 |
% } |
| 128 | 128 |
</div> |
| 129 | 129 |
<div class="tab-pane" id="file-changed"> |
| 130 |
+ <div style="margin-bottom:5px"> |
|
| 131 |
+ Showing <b><%= @$difftrees %> changed files</b> |
|
| 132 |
+ </div> |
|
| 130 | 133 |
<div> |
| 131 | 134 |
<%= include '/include/difftree', id => $end_commit->{id}, from_id => $start_commit->{id},
|
| 132 | 135 |
difftrees => $difftrees, parents => [], project_ns => $project %> |
| ... | ... |
@@ -1,6 +1,3 @@ |
| 1 |
-<div> |
|
| 2 |
- Showing <b><%= @$difftrees %> changed files</b> |
|
| 3 |
-</div> |
|
| 4 | 1 |
<table style="margin-bottom:10px"> |
| 5 | 2 |
|
| 6 | 3 |
% my $has_header = @$difftrees && @$parents > 1 && stash('action') eq 'commitdiff';
|
| ... | ... |
@@ -14,7 +14,8 @@ my $t = Test::Mojo->new($app); |
| 14 | 14 |
my $user = 'kimoto'; |
| 15 | 15 |
my $project = 'gitprep_t'; |
| 16 | 16 |
|
| 17 |
-subtest 'Commit page - first commit' => sub {
|
|
| 17 |
+diag 'Commit page - first commit'; |
|
| 18 |
+{
|
|
| 18 | 19 |
# Page access |
| 19 | 20 |
$t->get_ok("/$user/$project/commit/4b0e81c462088b16fefbe545e00b993fd7e6f884");
|
| 20 | 21 |
|
| ... | ... |
@@ -36,5 +37,7 @@ subtest 'Commit page - first commit' => sub {
|
| 36 | 37 |
# Added README |
| 37 | 38 |
$t->content_like(qr/class="file-add".*?README/s); |
| 38 | 39 |
|
| 40 |
+ # Empty file is added |
|
| 41 |
+ $t->content_like(qr/No changes/); |
|
| 39 | 42 |
}; |
| 40 | 43 |
|