gitweb: Fix split patches output (e.g. file to symlink)
authorJakub Narebski <jnareb@gmail.com>
Sun, 7 Jan 2007 01:52:27 +0000 (02:52 +0100)
committerJunio C Hamano <junkio@cox.net>
Sun, 7 Jan 2007 06:53:08 +0000 (22:53 -0800)
Do not replace /dev/null in two-line from-file/to-file diff header for
split patches ("split" patch mean more than one patch per one
diff-tree raw line) by a/file or b/file link.

Split patches differ from pair of deletion/creation patch in git diff
header: both a/file and b/file are hyperlinks, in all patches in a
split.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
gitweb/gitweb.perl

index d60d7c665a5e3b249ddf624f25f81b376ac518f5..f46a42296da0e66c0946c392c232058dcd09e34a 100755 (executable)
@@ -2525,7 +2525,7 @@ sub git_patchset_body {
                last PATCH unless $patch_line;
                next PATCH if ($patch_line =~ m/^diff /);
                #assert($patch_line =~ m/^---/) if DEBUG;
-               if ($from{'href'}) {
+               if ($from{'href'} && $patch_line =~ m!^--- "?a/!) {
                        $patch_line = '--- a/' .
                                      $cgi->a({-href=>$from{'href'}, -class=>"path"},
                                              esc_path($from{'file'}));
@@ -2537,7 +2537,7 @@ sub git_patchset_body {
                chomp $patch_line;
 
                #assert($patch_line =~ m/^+++/) if DEBUG;
-               if ($to{'href'}) {
+               if ($to{'href'} && $patch_line =~ m!^\+\+\+ "?b/!) {
                        $patch_line = '+++ b/' .
                                      $cgi->a({-href=>$to{'href'}, -class=>"path"},
                                              esc_path($to{'file'}));