diff options
author | Kay Sievers <kay.sievers@suse.de> | 2005-10-19 03:18:45 +0200 |
---|---|---|
committer | Kay Sievers <kay.sievers@suse.de> | 2005-10-19 03:18:45 +0200 |
commit | 11044297b21e0ecabc22c055e43be7bfd3972dff (patch) | |
tree | 64a575e6f25634e270ce2951c0a84078522d8fbe | |
parent | 9312944d35b571c4a7fdde266131b1a6f8d03241 (diff) | |
download | git-11044297b21e0ecabc22c055e43be7bfd3972dff.tar.gz git-11044297b21e0ecabc22c055e43be7bfd3972dff.tar.xz |
add Expires: +1d header to commit and commitdiff pages
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
-rwxr-xr-x | gitweb.cgi | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/gitweb.cgi b/gitweb.cgi index a11f2974f..873b7ce12 100755 --- a/gitweb.cgi +++ b/gitweb.cgi @@ -208,6 +208,7 @@ if (!defined $action || $action eq "summary") { sub git_header_html { my $status = shift || "200 OK"; + my $expires = shift; my $title = "git"; if (defined $project) { @@ -216,7 +217,7 @@ sub git_header_html { $title .= "/$action"; } } - print $cgi->header(-type=>'text/html', -charset => 'utf-8', -status=> $status); + print $cgi->header(-type=>'text/html', -charset => 'utf-8', -status=> $status, -expires => $expires); print <<EOF; <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> @@ -1620,7 +1621,13 @@ sub git_commit { open my $fd, "-|", "$gitbin/git-diff-tree -r -M $root $parent $hash" or die_error(undef, "Open failed."); @difftree = map { chomp; $_ } <$fd>; close $fd or die_error(undef, "Reading diff-tree failed."); - git_header_html(); + + # non-textual hash id's can be cached + my $expires; + if ($hash =~ m/^[0-9a-fA-F]{40}$/) { + $expires = "+1d"; + } + git_header_html(undef, $expires); print "<div class=\"page_nav\">\n" . $cgi->a({-href => "$my_uri?p=$project;a=summary"}, "summary") . " | " . $cgi->a({-href => "$my_uri?p=$project;a=shortlog;h=$hash"}, "shortlog") . @@ -1852,7 +1859,12 @@ sub git_commitdiff { my (@difftree) = map { chomp; $_ } <$fd>; close $fd or die_error(undef, "Reading diff-tree failed."); - git_header_html(); + # non-textual hash id's can be cached + my $expires; + if ($hash =~ m/^[0-9a-fA-F]{40}$/) { + $expires = "+1d"; + } + git_header_html(undef, $expires); print "<div class=\"page_nav\">\n" . $cgi->a({-href => "$my_uri?p=$project;a=summary"}, "summary") . " | " . $cgi->a({-href => "$my_uri?p=$project;a=shortlog;h=$hash"}, "shortlog") . |