@matheusbsbs / matheus-bagliano / commits / 869d58813b
Fork 0

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>

Jakub Narebski committed Jul 5, 2010 at 20:52 UTC 869d58813b24c74e84c9388041eafcef40cb51e4
1 file changed +11 -6
gitweb/gitweb.perl
+11 -6
@@ -1027,18 +1027,18 @@ sub dispatch {
1027 $actions{$action}->();
1028 }
1029
1030 -sub run_request {
1030 +sub reset_timer {
1031 our $t0 = [Time::HiRes::gettimeofday()]
1032 if defined $t0;
1033 + our $number_of_git_cmds = 0;
1034 +}
1035 +
1036 +sub run_request {
1037 + reset_timer();
1038
1039 evaluate_uri();
1035 - evaluate_gitweb_config();
1036 - evaluate_git_version();
1040 check_loadavg();
1041
1039 - # $projectroot and $projects_list might be set in gitweb config file
1040 - $projects_list ||= $projectroot;
1041 -
1042 evaluate_query_params();
1043 evaluate_path_info();
1044 evaluate_and_validate_params();
@@ -1086,6 +1086,11 @@ sub evaluate_argv {
1086
1087 sub run {
1088 evaluate_argv();
1089 + evaluate_gitweb_config();
1090 + evaluate_git_version();
1091 +
1092 + # $projectroot and $projects_list might be set in gitweb config file
1093 + $projects_list ||= $projectroot;
1094
1095 $pre_listen_hook->()
1096 if $pre_listen_hook;