aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Narebski <jnareb@gmail.com>2010-07-05 20:52:43 +0200
committerJunio C Hamano <gitster@pobox.com>2010-07-05 13:28:20 -0700
commit869d58813b24c74e84c9388041eafcef40cb51e4 (patch)
treead100e82e6fdaaf744606c5bde0d8e440f6b58a4
parent9ba0f0334dd505f78e0374bbe857c5e202f5a778 (diff)
downloadgit-869d58813b24c74e84c9388041eafcef40cb51e4.tar.gz
git-869d58813b24c74e84c9388041eafcef40cb51e4.tar.xz
gitweb: Move evaluate_gitweb_config out of run_request
Move evaluate_gitweb_config() and evaluate_git_version() out of run_request() to run(), making them not run one for each request. This changes how git behaves in FastCGI case. This change makes it impossible to have config which changes with request, but I don't think anyone relied on such (hidden action) behavior. While at it, reset timer and number of git commands at beginning of run_request() in new reset_timer() subroutine. This fixes case when gitweb was run using FastCGI interface: time is reported for request, and not for single run of gitweb script. This changes slightly behavior in non-FastCGI case: the number of git commands reported is 1 less (running `git --version` one per gitweb is not counted now). Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgitweb/gitweb.perl17
1 files changed, 11 insertions, 6 deletions
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 944637653..1f611d22d 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -1027,18 +1027,18 @@ sub dispatch {
$actions{$action}->();
}
-sub run_request {
+sub reset_timer {
our $t0 = [Time::HiRes::gettimeofday()]
if defined $t0;
+ our $number_of_git_cmds = 0;
+}
+
+sub run_request {
+ reset_timer();
evaluate_uri();
- evaluate_gitweb_config();
- evaluate_git_version();
check_loadavg();
- # $projectroot and $projects_list might be set in gitweb config file
- $projects_list ||= $projectroot;
-
evaluate_query_params();
evaluate_path_info();
evaluate_and_validate_params();
@@ -1086,6 +1086,11 @@ sub evaluate_argv {
sub run {
evaluate_argv();
+ evaluate_gitweb_config();
+ evaluate_git_version();
+
+ # $projectroot and $projects_list might be set in gitweb config file
+ $projects_list ||= $projectroot;
$pre_listen_hook->()
if $pre_listen_hook;