gitweb: Create special from-file/to-file header for combined diff
Instead of using default, diff(1) like from-file/to-file header for
combined diff (for a merge commit), which looks like:
--- a/git-gui/git-gui.sh
+++ b/_git-gui/git-gui.sh_
(where _link_ denotes [hidden] hyperlink), create from-file(n)/to-file
header, using "--- <n>/_<filename>_" for each of parents, e.g.:
--- 1/_git-gui/git-gui.sh_
--- 2/_git-gui.sh_
+++ b/_git-gui/git-gui.sh_
Test it on one of merge commits involving rename, e.g.
95f97567c1887d77f3a46b42d8622c76414d964d (rename at top)
5bac4a6719
(file from one branch)
This is mainly meant to easier see renames in a merge commit.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
90921740bd
commit
deaa01a9f5
@ -1064,19 +1064,35 @@ sub format_diff_from_to_header {
|
||||
|
||||
$line = $from_line;
|
||||
#assert($line =~ m/^---/) if DEBUG;
|
||||
# no extra formatting "^--- /dev/null"
|
||||
if ($line =~ m!^--- "?a/!) {
|
||||
if (!$diffinfo->{'nparents'} && # multiple 'from'
|
||||
$from->{'href'}) {
|
||||
$line = '--- a/' .
|
||||
$cgi->a({-href=>$from->{'href'}, -class=>"path"},
|
||||
esc_path($from->{'file'}));
|
||||
} else {
|
||||
$line = '--- a/' .
|
||||
esc_path($from->{'file'});
|
||||
# no extra formatting for "^--- /dev/null"
|
||||
if (! $diffinfo->{'nparents'}) {
|
||||
# ordinary (single parent) diff
|
||||
if ($line =~ m!^--- "?a/!) {
|
||||
if ($from->{'href'}) {
|
||||
$line = '--- a/' .
|
||||
$cgi->a({-href=>$from->{'href'}, -class=>"path"},
|
||||
esc_path($from->{'file'}));
|
||||
} else {
|
||||
$line = '--- a/' .
|
||||
esc_path($from->{'file'});
|
||||
}
|
||||
}
|
||||
$result .= qq!<div class="diff from_file">$line</div>\n!;
|
||||
|
||||
} else {
|
||||
# combined diff (merge commit)
|
||||
for (my $i = 0; $i < $diffinfo->{'nparents'}; $i++) {
|
||||
if ($from->{'href'}[$i]) {
|
||||
$line = '--- ' .
|
||||
($i+1) . "/" .
|
||||
$cgi->a({-href=>$from->{'href'}[$i], -class=>"path"},
|
||||
esc_path($from->{'file'}[$i]));
|
||||
} else {
|
||||
$line = '--- /dev/null';
|
||||
}
|
||||
$result .= qq!<div class="diff from_file">$line</div>\n!;
|
||||
}
|
||||
}
|
||||
$result .= qq!<div class="diff from_file">$line</div>\n!;
|
||||
|
||||
$line = $to_line;
|
||||
#assert($line =~ m/^\+\+\+/) if DEBUG;
|
||||
|
Loading…
Reference in New Issue
Block a user