Re: [PATCH/RFC] gitweb: Preserve $base_url if it was set
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:50:07
Jonathan Nieder [off-list ref] writes:
Jakub Narebski wrote:quoted
If $base_url was defined, then do not redefine it in evaluate_uri().How about $my_uri and $my_url? What happens if $ENV{PATH_INFO} or $cgi->url(...) changes between requests? This is partly my ignorance: perhaps FastCGI et al guarantee that such configuration changes can't happen within a single process? Maintaining backward compatibility while avoiding this last concern seems hard.... It is tempting to change the documentation now and worry about code changes later. Something like this? Signed-off-by: Jonathan Nieder <redacted>
Sounds like a sensible thing to do; narrows an interface with two variables into a more flexible new interface with a single variable.
quoted hunk
---diff --git a/gitweb/README b/gitweb/README index 6646fda..a9421e0 100644 --- a/gitweb/README +++ b/gitweb/README@@ -177,13 +177,15 @@ not include variables usually directly set during build): * $my_url, $my_uri Full URL and absolute URL of gitweb script; in earlier versions of gitweb you might have need to set those - variables, now there should be no need to do it. + variables, now there should be no need to do it. See + $per_request_config if you need to set them still. * $base_url Base URL for relative URLs in pages generated by gitweb, (e.g. $logo, $favicon, @stylesheets if they are relative URLs), needed and used only for URLs with nonempty PATH_INFO via <base href="$base_url">. Usually gitweb sets its value correctly, and there is no need to set this variable, e.g. to $my_uri or "/". + See $per_request_config if you need to set it anyway. * $home_link Target of the home link on top of all pages (the first part of view "breadcrumbs"). By default set to absolute URI of a page ($my_uri).@@ -252,7 +254,10 @@ not include variables usually directly set during build): sub { $ENV{GL_USER} = $cgi->remote_user || "gitweb"; } Otherwise it is treated as boolean value: if true gitweb would process config file once per request, if false it would process config file only - once. The default is true. + once. Note: $my_url, $my_uri, and $base_url are overwritten with + their default values before every request, so if you want to change + them, be sure to set this variable to true or a code reference effecting + the desired changes. The default is true. Projects list file format ~~~~~~~~~~~~~~~~~~~~~~~~~