git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/5] gitweb: Fix error in git_patchest_body for file creation/deletion patch

From
Jakub Narebski <jnareb@gmail.com>
Date
Jan 7, 2007, 01:52 UTC
Message-ID
<1168134751748-git-send-email-jnareb@gmail.com>
In-Reply-To
<100171.86639.qm@web31814.mail.mud.yahoo.com>
$from_id, $to_id variables should be local per PATCH.

Fix error in git_patchset_body for file creation (deletion) patches, where instead of /dev/null as from-file (to-file) diff header line, it had link to previous file with current file name. This error occured only if there was another patch before file creation (deletion) patch.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
Luben Tuikov wrote:
Show 7 quoted lines
> The second bug is displaying a renamed file with the
> same name as the one of the preceding "patch". Saw
> this one today when I pulled.
> 
> To exhibit these, you need to "commitdiff" a commit
> which has at least one rename and at least one regular
> diff preceding the rename.
I think this should also fix this bug.
 gitweb/gitweb.perl |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 7906280..04c8015 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -2378,7 +2378,6 @@ sub git_patchset_body {
 	my $patch_line;
 	my $diffinfo;
 	my (%from, %to);
-	my ($from_id, $to_id);
 
 	print "<div class=\"patchset\">\n";
 
@@ -2392,6 +2391,7 @@ sub git_patchset_body {
  PATCH:
 	while ($patch_line) {
 		my @diff_header;
+		my ($from_id, $to_id);
 
 		# git diff header
 		#assert($patch_line =~ m/^diff /) if DEBUG;
@@ -2439,11 +2439,15 @@ sub git_patchset_body {
 				$from{'href'} = href(action=>"blob", hash_base=>$hash_parent,
 				                     hash=>$diffinfo->{'from_id'},
 				                     file_name=>$from{'file'});
+			} else {
+				delete $from{'href'};
 			}
 			if ($diffinfo->{'status'} ne "D") { # not deleted file
 				$to{'href'} = href(action=>"blob", hash_base=>$hash,
 				                   hash=>$diffinfo->{'to_id'},
 				                   file_name=>$to{'file'});
+			} else {
+				delete $to{'href'};
 			}
 			# this is first patch for raw difftree line with $patch_idx index
 			# we index @$difftree array from 0, but number patches from 1
-- 
1.4.4.3
Previous: Luben TuikovNext: Luben Tuikov
Message 12 of 17 in “Bugs in gitweb”
  1. Luben TuikovJan 5, 2007
  2. 0/5 gitweb: git_patchset_body fixesJakub Narebski, Jan 7, 2007
  3. Luben TuikovJan 8, 2007
  4. Jakub NarebskiJan 8, 2007
  5. Luben TuikovJan 9, 2007
  6. Jakub NarebskiJan 9, 2007
  7. Jakub NarebskiJan 9, 2007
  8. Luben TuikovJan 9, 2007
  9. gitweb: Fix git_patchset_body not closing <div class="patch">Jakub Narebski, Jan 9, 2007
  10. Luben TuikovJan 9, 2007
  11. Luben TuikovJan 9, 2007
  12. 1/5 gitweb: Fix error in git_patchest_body for file creation/deletion patchJakub Narebski, Jan 7, 2007
  13. Luben TuikovJan 8, 2007
  14. 2/5 gitweb: Fix error in "rename to"/"copy to" git diff header outputJakub Narebski, Jan 7, 2007
  15. 3/5 gitweb: Fix errors in git_patchset_body for empty patchesJakub Narebski, Jan 7, 2007
  16. 4/5 Revert "gitweb: There can be empty patches (in git_patchset_body)"Jakub Narebski, Jan 7, 2007
  17. 5/5 gitweb: Fix split patches output (e.g. file to symlink)Jakub Narebski, Jan 7, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.