Thread (1 message) 1 message, 1 author, 2016-06-15

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
 ~~~~~~~~~~~~~~~~~~~~~~~~~
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help