Jakub Narebski wrote: > 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. Since gitweb_config can contain something like $my_uri =~ s/foo/bar/; one would want to populate $my_uri in advance. Meanwhile, if the default for $my_uri could change between requests, we would want to be able to detect the case when $my_uri is not set. But what if gitweb_config contains $my_uri = "something"; where "something" happens to match the default value for $my_uri in the first request? It is tempting to change the documentation now and worry about code changes later. Something like this? Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> --- 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 ~~~~~~~~~~~~~~~~~~~~~~~~~ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html