Re: [PATCH/RFC] gitweb: Preserve $base_url if it was set
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 29, 2010, 17:57 UTC
- Message-ID
- <7vr5e457y6.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20101129001908.GA26358@burratino>
Jonathan Nieder <jrnieder@gmail.com> writes:
Show 17 quoted lines
> 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....
> It is tempting to change the documentation now and worry about code
> changes later. Something like this?
>
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>Sounds like a sensible thing to do; narrows an interface with two variables into a more flexible new interface with a single variable.
Show 34 quoted lines
> ---
> 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
> ~~~~~~~~~~~~~~~~~~~~~~~~~