... | ... |
@@ -217,7 +217,8 @@ sub blob_diffs { |
217 | 217 |
from_file => $from_file, |
218 | 218 |
lines => $lines, |
219 | 219 |
add_line_count => $diff_info->{add_line_count}, |
220 |
- delete_line_count => $diff_info->{delete_line_count} |
|
220 |
+ delete_line_count => $diff_info->{delete_line_count}, |
|
221 |
+ binary => $diff_info->{binary} |
|
221 | 222 |
}; |
222 | 223 |
|
223 | 224 |
# Diff tree info |
... | ... |
@@ -228,6 +229,7 @@ sub blob_diffs { |
228 | 229 |
$diff_tree->{delete_line_count} = $diff_info->{delete_line_count}; |
229 | 230 |
$diff_tree->{add_block_count} = $diff_info->{add_block_count}; |
230 | 231 |
$diff_tree->{delete_block_count} = $diff_info->{delete_block_count}; |
232 |
+ $diff_tree->{binary} = $diff_info->{binary}; |
|
231 | 233 |
last; |
232 | 234 |
} |
233 | 235 |
} |
... | ... |
@@ -1011,7 +1013,9 @@ sub last_change_commit { |
1011 | 1013 |
|
1012 | 1014 |
sub parse_blob_diff_lines { |
1013 | 1015 |
my ($self, $lines) = @_; |
1014 |
- |
|
1016 |
+ |
|
1017 |
+ my $diff_info = {}; |
|
1018 |
+ |
|
1015 | 1019 |
# Parse |
1016 | 1020 |
my @lines; |
1017 | 1021 |
my $next_before_line_num; |
... | ... |
@@ -1019,13 +1023,15 @@ sub parse_blob_diff_lines { |
1019 | 1023 |
my $add_line_count = 0; |
1020 | 1024 |
my $delete_line_count = 0; |
1021 | 1025 |
for my $line (@$lines) { |
1026 |
+ warn $line; |
|
1027 |
+ |
|
1022 | 1028 |
chomp $line; |
1023 | 1029 |
|
1024 | 1030 |
my $class; |
1025 | 1031 |
my $before_line_num; |
1026 | 1032 |
my $after_line_num; |
1027 | 1033 |
|
1028 |
- if ($line =~ /^@@\s-(\d+),\d+\s\+(\d+),\d+/) { |
|
1034 |
+ if ($line =~ /^@@\s-(\d+)(?:,\d+)?\s\+(\d+)/) { |
|
1029 | 1035 |
$next_before_line_num = $1; |
1030 | 1036 |
$next_after_line_num = $2; |
1031 | 1037 |
|
... | ... |
@@ -1047,7 +1053,10 @@ sub parse_blob_diff_lines { |
1047 | 1053 |
$after_line_num = $next_after_line_num++; |
1048 | 1054 |
$add_line_count++; |
1049 | 1055 |
} |
1050 |
- elsif ($line =~ /^Binary files/) { $class = 'binary_file' } |
|
1056 |
+ elsif ($line =~ /^Binary files/) { |
|
1057 |
+ $class = 'binary_file'; |
|
1058 |
+ $diff_info->{binary} = 1; |
|
1059 |
+ } |
|
1051 | 1060 |
elsif ($line =~ /^ /) { |
1052 | 1061 |
$class = 'diff'; |
1053 | 1062 |
$before_line_num = $next_before_line_num++; |
... | ... |
@@ -1075,12 +1084,11 @@ sub parse_blob_diff_lines { |
1075 | 1084 |
? 0 |
1076 | 1085 |
: floor(($delete_line_count * 5) / $diff_line_count); |
1077 | 1086 |
|
1078 |
- my $diff_info = { |
|
1079 |
- add_line_count => $add_line_count, |
|
1080 |
- delete_line_count => $delete_line_count, |
|
1081 |
- add_block_count => $add_block_count, |
|
1082 |
- delete_block_count => $delete_block_count |
|
1083 |
- }; |
|
1087 |
+ $diff_info->{add_line_count} = $add_line_count; |
|
1088 |
+ $diff_info->{delete_line_count} = $delete_line_count; |
|
1089 |
+ $diff_info->{add_block_count} = $add_block_count; |
|
1090 |
+ $diff_info->{delete_block_count} = $delete_block_count; |
|
1091 |
+ |
|
1084 | 1092 |
return (\@lines, $diff_info); |
1085 | 1093 |
} |
1086 | 1094 |
|
... | ... |
@@ -27,7 +27,7 @@ |
27 | 27 |
%> |
28 | 28 |
|
29 | 29 |
|
30 |
-<<%= $tag %> title="<%= $diff_count_text %>" style="text-decoration:none;color:#666" href="#<%= $fragment %>"><%= $diff_line_count %></<%= $tag %>> |
|
30 |
+<<%= $tag %> title="<%= $diff_count_text %>" style="text-decoration:none;color:#666" href="#<%= $fragment %>"><%= $diff_tree->{binary} ? 'BIN' : $diff_line_count %></<%= $tag %>> |
|
31 | 31 |
|
32 | 32 |
<<%= $tag %> title="<%= $diff_count_text %>" style="text-decoration:none;display:inline-block;overflow:none;" href="#<%= $fragment %>"> |
33 | 33 |
% for (my $i = 0; $i < $add_block_count; $i++) { |
... | ... |
@@ -120,9 +120,23 @@ note 'Commit page'; |
120 | 120 |
note 'add text'; |
121 | 121 |
{ |
122 | 122 |
$t->get_ok("/$user/$project/commit/da5b854b760351adc58d24d121070e729e80534d"); |
123 |
+ $t->content_like(qr/\@\@/); |
|
123 | 124 |
$t->content_like(qr/\+aaa/); |
124 | 125 |
} |
125 | 126 |
|
127 |
+ note 'added aaa to a_renamed.txt for merge commit'; |
|
128 |
+ { |
|
129 |
+ $t->get_ok("/$user/$project/commit/da5b854b760351adc58d24d121070e729e80534d"); |
|
130 |
+ $t->content_like(qr/\@\@/); |
|
131 |
+ } |
|
132 |
+ |
|
133 |
+ note 'add image data'; |
|
134 |
+ { |
|
135 |
+ $t->get_ok("/$user/$project/commit/0b6eca6a28538b1226961ca7655d2662f3522652"); |
|
136 |
+ $t->content_like(qr/BIN/); |
|
137 |
+ $t->content_like(qr#/raw/0b6eca6a28538b1226961ca7655d2662f3522652/sample.png#); |
|
138 |
+ } |
|
139 |
+ |
|
126 | 140 |
note 'Branch name'; |
127 | 141 |
{ |
128 | 142 |
# Page access (branch name) |