{"thread":{"id":"5397","subject":"[PATCH 0/7] gitweb: Cleanups, fixes and small improvements","startedAt":"2006-08-26T17:13:12Z","lastAt":"2006-08-27T20:21:03Z","messageCount":11,"participants":["Jakub Narebski","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":7},"messages":[{"id":"25940","messageId":"1156612392716-git-send-email-jnareb@gmail.com","threadId":"5397","inReplyTo":null,"subject":"[PATCH 0/7] gitweb: Cleanups, fixes and small improvements","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-26T17:13:12Z","receivedAt":"2006-08-26T17:13:12Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"This series contains fixes, improvements and cleanups.\n\nFixes are patch 2 and 4, with 4 more important.\n\nThis series is based on next \n  (885a89a077c2c79e1fac81c57711566ec30f9bc1)\n---\n gitweb/gitweb.perl |   75 +++++++++++++++++++++++++++++++++++++---------------\n 1 files changed, 54 insertions(+), 21 deletions(-)\n\nShortlog:\n\n      gitweb: Restore old git_blame using git-annotate under \"annotate\"\n      gitweb: Remove workaround for git-diff bug fixed in f82cd3c\n      gitweb: Improve comments about gitweb features configuration\n      gitweb: Fix typo in git_patchset_body\n      gitweb: Use 'local $/ = undef;' before 'print <$fd>;'\n      gitweb: blobs defined by non-textual hash ids can be cached\n      gitweb: Always link to plain version of the blob\n"},{"id":"25946","messageId":"11566124661001-git-send-email-jnareb@gmail.com","threadId":"5397","inReplyTo":"1156612392716-git-send-email-jnareb@gmail.com","subject":"[PATCH 1/7] gitweb: Restore old git_blame using git-annotate under \"annotate\"","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-26T17:14:20Z","receivedAt":"2006-08-26T17:14:20Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Rename git_blame to git_annotate, and git_blame2 to git_blame.\nLink git_annotate under \"annotate\" action.  Add link to \"blame\nin git_annotate, and to \"annotate\" in git_blame.\n\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n gitweb/gitweb.perl |   13 ++++++++++---\n 1 files changed, 10 insertions(+), 3 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex e00a6ed..abd0f0d 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -229,7 +229,8 @@ if (defined $searchtext) {\n \n # dispatch\n my %actions = (\n-\t\"blame\" => \\&git_blame2,\n+\t\"blame\" => \\&git_blame,\n+\t\"annotate\" => \\&git_annotate,\n \t\"blobdiff\" => \\&git_blobdiff,\n \t\"blobdiff_plain\" => \\&git_blobdiff_plain,\n \t\"blob\" => \\&git_blob,\n@@ -2166,7 +2167,7 @@ sub git_tag {\n \tgit_footer_html();\n }\n \n-sub git_blame2 {\n+sub git_blame {\n \tmy $fd;\n \tmy $ftype;\n \n@@ -2193,6 +2194,9 @@ sub git_blame2 {\n \t\t$cgi->a({-href => href(action=>\"blob\", hash=>$hash, hash_base=>$hash_base, file_name=>$file_name)},\n \t\t        \"blob\") .\n \t\t\" | \" .\n+\t\t$cgi->a({-href => href(action=>\"annotate\", hash=>$hash, hash_base=>$hash_base, file_name=>$file_name)},\n+\t\t        \"annotate\") .\n+\t\t\" | \" .\n \t\t$cgi->a({-href => href(action=>\"blame\", file_name=>$file_name)},\n \t\t        \"head\");\n \tgit_print_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);\n@@ -2236,7 +2240,7 @@ HTML\n \tgit_footer_html();\n }\n \n-sub git_blame {\n+sub git_annotate {\n \tmy $fd;\n \n \tif (!gitweb_check_feature('blame')) {\n@@ -2258,6 +2262,9 @@ sub git_blame {\n \t\t$cgi->a({-href => href(action=>\"blob\", hash=>$hash, hash_base=>$hash_base, file_name=>$file_name)},\n \t\t        \"blob\") .\n \t\t\" | \" .\n+\t\t$cgi->a({-href => href(action=>\"blame\", hash=>$hash, hash_base=>$hash_base, file_name=>$file_name)},\n+\t\t        \"blame\") .\n+\t\t\" | \" .\n \t\t$cgi->a({-href => href(action=>\"blame\", file_name=>$file_name)},\n \t\t        \"head\");\n \tgit_print_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);\n-- \n1.4.1.1\n"},{"id":"25944","messageId":"11566124672654-git-send-email-jnareb@gmail.com","threadId":"5397","inReplyTo":"1156612392716-git-send-email-jnareb@gmail.com","subject":"[PATCH 2/7] gitweb: Remove workaround for git-diff bug fixed in f82cd3c","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-26T17:14:21Z","receivedAt":"2006-08-26T17:14:21Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Remove workaround in git_blobdiff for error in git-diff (showing\nreversed diff for diff of blobs), corrected in commit\n f82cd3c  Fix \"git diff blob1 blob2\" showing the diff in reverse.\nwhich is post 1.4.2-rc2 commit.\n\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n gitweb/gitweb.perl |    3 +--\n 1 files changed, 1 insertions(+), 2 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex abd0f0d..df2f9e5 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -2841,8 +2841,7 @@ sub git_blobdiff {\n \t\t}\n \n \t\t# open patch output\n-\t\t#open $fd, \"-|\", $GIT, \"diff\", '-p', $hash_parent, $hash\n-\t\topen $fd, \"-|\", $GIT, \"diff\", '-p', $hash, $hash_parent\n+\t\topen $fd, \"-|\", $GIT, \"diff\", '-p', $hash_parent, $hash\n \t\t\tor die_error(undef, \"Open git-diff failed\");\n \t} else  {\n \t\tdie_error('404 Not Found', \"Missing one of the blob diff parameters\")\n-- \n1.4.1.1\n"},{"id":"25941","messageId":"11566124672096-git-send-email-jnareb@gmail.com","threadId":"5397","inReplyTo":"1156612392716-git-send-email-jnareb@gmail.com","subject":"[PATCH 3/7] gitweb: Improve comments about gitweb features configuration","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-26T17:14:22Z","receivedAt":"2006-08-26T17:14:22Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n gitweb/gitweb.perl |   25 ++++++++++++++++---------\n 1 files changed, 16 insertions(+), 9 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex df2f9e5..c29ffa8 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -67,9 +67,16 @@ our $mimetypes_file = undef;\n # You define site-wide feature defaults here; override them with\n # $GITWEB_CONFIG as necessary.\n our %feature = (\n-\t# feature => {'sub' => feature-sub, 'override' => allow-override, 'default' => [ default options...]\n-\t# if feature is overridable, feature-sub will be called with default options;\n-\t# return value indicates if to enable specified feature\n+\t# feature => {\n+\t# \t'sub' => feature-sub (subroutine),\n+\t# \t'override' => allow-override (boolean),\n+\t# \t'default' => [ default options...] (array reference)}\n+\t#\n+\t# if feature is overridable (it means that allow-override has true value,\n+\t# then feature-sub will be called with default options as parameters;\n+\t# return value of feature-sub indicates if to enable specified feature\n+\t#\n+\t# use gitweb_check_feature(<feature>) to check if <feature> is enabled\n \n \t'blame' => {\n \t\t'sub' => \\&feature_blame,\n@@ -95,9 +102,9 @@ sub gitweb_check_feature {\n }\n \n # To enable system wide have in $GITWEB_CONFIG\n-# $feature{'blame'}{'default'} =  [1];\n-# To have project specific config enable override in  $GITWEB_CONFIG\n-# $feature{'blame'}{'override'} =  1;\n+# $feature{'blame'}{'default'} = [1];\n+# To have project specific config enable override in $GITWEB_CONFIG\n+# $feature{'blame'}{'override'} = 1;\n # and in project config gitweb.blame = 0|1;\n \n sub feature_blame {\n@@ -113,9 +120,9 @@ sub feature_blame {\n }\n \n # To disable system wide have in $GITWEB_CONFIG\n-# $feature{'snapshot'}{'default'} =  [undef];\n-# To have project specific config enable override in  $GITWEB_CONFIG\n-# $feature{'blame'}{'override'} =  1;\n+# $feature{'snapshot'}{'default'} = [undef];\n+# To have project specific config enable override in $GITWEB_CONFIG\n+# $feature{'blame'}{'override'} = 1;\n # and in project config  gitweb.snapshot = none|gzip|bzip2\n \n sub feature_snapshot {\n-- \n1.4.1.1\n"},{"id":"25943","messageId":"11566124672334-git-send-email-jnareb@gmail.com","threadId":"5397","inReplyTo":"1156612392716-git-send-email-jnareb@gmail.com","subject":"[PATCH 4/7] gitweb: Fix typo in git_patchset_body","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-26T17:14:23Z","receivedAt":"2006-08-26T17:14:23Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n gitweb/gitweb.perl |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex c29ffa8..093deab 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -1657,7 +1657,7 @@ sub git_patchset_body {\n \tprint \"<div class=\\\"patchset\\\">\\n\";\n \n \tLINE:\n-\twhile (my $patch_line @$fd>) {\n+\twhile (my $patch_line = <$fd>) {\n \t\tchomp $patch_line;\n \n \t\tif ($patch_line =~ m/^diff /) { # \"git diff\" header\n-- \n1.4.1.1\n"},{"id":"25945","messageId":"11566124673653-git-send-email-jnareb@gmail.com","threadId":"5397","inReplyTo":"1156612392716-git-send-email-jnareb@gmail.com","subject":"[PATCH 5/7] gitweb: Use 'local $/ = undef;' before 'print <$fd>;'","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-26T17:14:24Z","receivedAt":"2006-08-26T17:14:24Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n gitweb/gitweb.perl |    5 +++--\n 1 files changed, 3 insertions(+), 2 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex 093deab..eae83e6 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -2017,6 +2017,7 @@ sub git_project_list {\n \tif (-f $home_text) {\n \t\tprint \"<div class=\\\"index_include\\\">\\n\";\n \t\topen (my $fd, $home_text);\n+\t\tlocal $/ = undef;\n \t\tprint <$fd>;\n \t\tclose $fd;\n \t\tprint \"</div>\\n\";\n@@ -2395,11 +2396,10 @@ sub git_blob_plain {\n \n \tprint $cgi->header(-type => \"$type\",\n \t                   -content_disposition => \"inline; filename=\\\"$save_as\\\"\");\n-\tundef $/;\n \tbinmode STDOUT, ':raw';\n+\tlocal $/ = undef;\n \tprint <$fd>;\n \tbinmode STDOUT, ':utf8'; # as set at the beginning of gitweb.cgi\n-\t$/ = \"\\n\";\n \tclose $fd;\n }\n \n@@ -2585,6 +2585,7 @@ sub git_snapshot {\n \topen my $fd, \"-|\", \"$GIT tar-tree $hash \\'$project\\' | $command\" or\n \t\tdie_error(undef, \"Execute git-tar-tree failed.\");\n \tbinmode STDOUT, ':raw';\n+\tlocal $/ = undef;\n \tprint <$fd>;\n \tbinmode STDOUT, ':utf8'; # as set at the beginning of gitweb.cgi\n \tclose $fd;\n-- \n1.4.1.1\n"},{"id":"25947","messageId":"11566124672100-git-send-email-jnareb@gmail.com","threadId":"5397","inReplyTo":"1156612392716-git-send-email-jnareb@gmail.com","subject":"[PATCH 6/7] gitweb: blobs defined by non-textual hash ids can be cached","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-26T17:14:25Z","receivedAt":"2006-08-26T17:14:25Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n gitweb/gitweb.perl |   20 +++++++++++++++++---\n 1 files changed, 17 insertions(+), 3 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex eae83e6..f6175bb 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -2371,6 +2371,12 @@ sub git_heads {\n }\n \n sub git_blob_plain {\n+\t# blobs defined by non-textual hash id's can be cached\n+\tmy $expires;\n+\tif ($hash =~ m/^[0-9a-fA-F]{40}$/) {\n+\t\t$expires = \"+1d\";\n+\t}\n+\n \tif (!defined $hash) {\n \t\tif (defined $file_name) {\n \t\t\tmy $base = $hash_base || git_get_head_hash($project);\n@@ -2394,8 +2400,10 @@ sub git_blob_plain {\n \t\t$save_as .= '.txt';\n \t}\n \n-\tprint $cgi->header(-type => \"$type\",\n-\t                   -content_disposition => \"inline; filename=\\\"$save_as\\\"\");\n+\tprint $cgi->header(\n+\t\t-type => \"$type\",\n+\t\t-expires=>$expires,\n+\t\t-content_disposition => \"inline; filename=\\\"$save_as\\\"\");\n \tbinmode STDOUT, ':raw';\n \tlocal $/ = undef;\n \tprint <$fd>;\n@@ -2404,6 +2412,12 @@ sub git_blob_plain {\n }\n \n sub git_blob {\n+\t# blobs defined by non-textual hash id's can be cached\n+\tmy $expires;\n+\tif ($hash =~ m/^[0-9a-fA-F]{40}$/) {\n+\t\t$expires = \"+1d\";\n+\t}\n+\n \tif (!defined $hash) {\n \t\tif (defined $file_name) {\n \t\t\tmy $base = $hash_base || git_get_head_hash($project);\n@@ -2421,7 +2435,7 @@ sub git_blob {\n \t\tclose $fd;\n \t\treturn git_blob_plain($mimetype);\n \t}\n-\tgit_header_html();\n+\tgit_header_html(undef, $expires);\n \tmy $formats_nav = '';\n \tif (defined $hash_base && (my %co = parse_commit($hash_base))) {\n \t\tif (defined $file_name) {\n-- \n1.4.1.1\n"},{"id":"25942","messageId":"1156612467711-git-send-email-jnareb@gmail.com","threadId":"5397","inReplyTo":"1156612392716-git-send-email-jnareb@gmail.com","subject":"[PATCH 7/7] gitweb: Always link to plain version of the blob in git_blob.","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-26T17:14:26Z","receivedAt":"2006-08-26T17:14:26Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Link to plain version of the blob. even if no valid hash_base is given\nin \"blob\" view (in git_blob).\n\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n gitweb/gitweb.perl |    7 ++++++-\n 1 files changed, 6 insertions(+), 1 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex f6175bb..02d327c 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -2461,8 +2461,13 @@ sub git_blob {\n \t\tgit_print_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);\n \t\tgit_print_header_div('commit', esc_html($co{'title'}), $hash_base);\n \t} else {\n+\t\t$formats_nav .=\n+\t\t\t$cgi->a({-href => href(action=>\"blob_plain\",\n+\t\t\t                       hash=>$hash, file_name=>$file_name)},\n+\t\t\t        \"plain\") .\n+\n \t\tprint \"<div class=\\\"page_nav\\\">\\n\" .\n-\t\t      \"<br/><br/></div>\\n\" .\n+\t\t      \"<br/>$formats_nav<br/></div>\\n\" .\n \t\t      \"<div class=\\\"title\\\">$hash</div>\\n\";\n \t}\n \tgit_print_page_path($file_name, \"blob\", $hash_base);\n-- \n1.4.1.1\n"},{"id":"25956","messageId":"7vd5an1afz.fsf@assigned-by-dhcp.cox.net","threadId":"5397","inReplyTo":"1156612392716-git-send-email-jnareb@gmail.com","subject":"Re: [PATCH 0/7] gitweb: Cleanups, fixes and small improvements","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-08-26T20:58:08Z","receivedAt":"2006-08-26T20:58:08Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jakub Narebski <jnareb@gmail.com> writes:\n\n* gitweb: Restore old git_blame using git-annotate under \"annotate\"\n\n  I actually was hoping to see a patch to remove the git_blame\n  which is not used as far as I can see.\n\n  Although we carried annotate and blame in git.git tree for\n  quite a while, the intention was always to deprecate one over\n  the other once pros-and-cons of each implementation become\n  clear (and I think people would not miss annotate if we remove \n  annotate and make it an alias for blame -c anymore).  What's\n  the reason we would want to have both?\n\n* gitweb: Remove workaround for git-diff bug fixed in f82cd3c\n. gitweb: Fix typo in git_patchset_body\n\n  I think you had separate patches for these; applied.\n\n* gitweb: Use 'local $/ = undef;' before 'print <$fd>;'\n\n  You changed:\n\n\t$/ = undef;\n\tprint <$fd>;\n        ... hope that nobody depends on standard value of $/\n\t... around here, which may still break if you did sub\n\t... calls, the sub did not localize $/ (who would?),\n        ... and depended to have a sane $/.\n\t$/ = \"\\n\";\n\n  to\n\n\tlocal $/ = undef;\n\tprint <$fd>;\n        ... hope that nobody depends on standard value of $/\n\t... until the end of scope, and whoever changes this\n        ... sub is careful enough in the future\n\n  which I think is worse.  Introducing an extra scope explicitly\n  delimit the part you want to use localized $/ like this\n\n\t{ local $/; print <$fd>; } \n\n  might have been more palatable.  Am I guessing the reason of\n  your change wrong?\n\n* gitweb: Always link to plain version of the blob\n\n  Needs a better description to justify the change by describing\n  in what way the current implementation is broken.\n\nThe ones above I won't apply just yet (I first applied, merged\ninto \"next\" and then commented on the earlier 19 series, but I'm\nnot going to repeat that mistake again this time).\n\nThe rest look OK so I'll apply them; [6/7] depended on [5/7] so\nI manually adjusted the context.\n"},{"id":"25957","messageId":"ecqdqt$rcl$1@sea.gmane.org","threadId":"5397","inReplyTo":"7vd5an1afz.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH 0/7] gitweb: Cleanups, fixes and small improvements","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-26T21:18:23Z","receivedAt":"2006-08-26T21:18:23Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano wrote:\n\n> Jakub Narebski <jnareb@gmail.com> writes:\n> \n> * gitweb: Restore old git_blame using git-annotate under \"annotate\"\n> \n>   I actually was hoping to see a patch to remove the git_blame\n>   which is not used as far as I can see.\n> \n>   Although we carried annotate and blame in git.git tree for\n>   quite a while, the intention was always to deprecate one over\n>   the other once pros-and-cons of each implementation become\n>   clear (and I think people would not miss annotate if we remove \n>   annotate and make it an alias for blame -c anymore).  What's\n>   the reason we would want to have both?\n\nWell, removing it completely might be not a best idea for now,\nas git_annotate has for example two more columns (\"Age\" and \"Author\") \nwhich might be usefull.\n\nI guess the intention is to provide patch for those who want \nto improve git_blame, to have comparison with git_annotate,\ni.e. patch not applied but available.\n\n> * gitweb: Use 'local $/ = undef;' before 'print <$fd>;'\n> \n>   You changed:\n> \n>         $/ = undef;\n>         print <$fd>;\n>         ... hope that nobody depends on standard value of $/\n>         ... around here, which may still break if you did sub\n>         ... calls, the sub did not localize $/ (who would?),\n>         ... and depended to have a sane $/.\n>         $/ = \"\\n\";\n> \n>   to\n> \n>         local $/ = undef;\n>         print <$fd>;\n>         ... hope that nobody depends on standard value of $/\n>         ... until the end of scope, and whoever changes this\n>         ... sub is careful enough in the future\n> \n>   which I think is worse.  Introducing an extra scope explicitly\n>   delimit the part you want to use localized $/ like this\n> \n>         { local $/; print <$fd>; } \n> \n>   might have been more palatable.  Am I guessing the reason of\n>   your change wrong?\n\nActually only one change was from '$/ = undef; print <$fd>; $/ = \"\\n\"',\nnamely at the end of git_blob_plain. I think nobody will print anything\nto the end of the sub.\n\nTwo other chunks actually _introduced_ 'local $/ = undef', both in the\nfairly short 'if' body. First to read $home_text (there change is not that\nimportant, as $home_text should be fairly short), next more important in\ngit_snapshot.\n\nIMVHO 'local $/ = undef' in all commands that get the rest of the output\nfrom filehandle (and outputting nothing later), like all 'plain' outputs\nshould be the idiom to use.\n\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n"},{"id":"25998","messageId":"ecsur8$gqh$1@sea.gmane.org","threadId":"5397","inReplyTo":"7vd5an1afz.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH 0/7] gitweb: Cleanups, fixes and small improvements","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-27T20:21:03Z","receivedAt":"2006-08-27T20:21:03Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano wrote:\n\n> * gitweb: Remove workaround for git-diff bug fixed in f82cd3c\n> . gitweb: Fix typo in git_patchset_body\n> \n>   I think you had separate patches for these; applied.\n\nI think the second one, the one fixing typo ('@$fd>' instead of '= <$fd>')\nwas not applied. I don't know how this typo got into gitweb, as I have\ntested gitweb after the 19-patch series, and this error looks was introduced\nin 'next' branch, 157e43b4b0dd5a08eb7a6838192ac58bca62fa5b commit\n\n  gitweb: Streamify patch output in git_commitdiff\n\nThis error is critical!\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n"}]}