git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
>  ~~~~~~~~~~~~~~~~~~~~~~~~~
Previous: Jakub Narebski
Message 15 of 15 in “Re: gitweb: false base href sent when integrated via reverse proxy and path_info is active”
  1. Jonathan NiederNov 28, 2010
  2. Giuseppe BilottaNov 28, 2010
  3. Jakub NarebskiNov 28, 2010
  4. Jonathan NiederNov 28, 2010
  5. Jakub NarebskiNov 30, 2010
  6. Junio C HamanoDec 1, 2010
  7. Daniel ReicheltNov 28, 2010
  8. Jakub NarebskiNov 28, 2010
  9. Daniel ReicheltNov 28, 2010
  10. Jonathan NiederNov 28, 2010
  11. Daniel ReicheltNov 28, 2010
  12. Jakub NarebskiNov 28, 2010
  13. Jonathan NiederNov 29, 2010
  14. Jakub NarebskiNov 29, 2010
  15. Junio C HamanoNov 29, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.