git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Jakub Narebski <jnareb@gmail.com>
Cc: Daniel Reichelt <debian@nachtgeist.net>,
	Giuseppe Bilotta <giuseppe.bilotta@gmail.com>,
	git@vger.kernel.org
Subject: Re: [PATCH/RFC] gitweb: Preserve $base_url if it was set
Date: Sun, 28 Nov 2010 18:19:08 -0600	[thread overview]
Message-ID: <20101129001908.GA26358@burratino> (raw)
In-Reply-To: <201011282305.39975.jnareb@gmail.com>

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@gmail.com>
---
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
 ~~~~~~~~~~~~~~~~~~~~~~~~~

  reply	other threads:[~2010-11-29  1:23 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20101128081048.13668.67286.reportbug@sb74.startrek>
2010-11-28 16:27 ` gitweb: false base href sent when integrated via reverse proxy and path_info is active Jonathan Nieder
2010-11-28 17:25   ` Giuseppe Bilotta
2010-11-28 17:47     ` Jakub Narebski
2010-11-28 18:12       ` Jonathan Nieder
2010-11-30 18:22         ` Jakub Narebski
2010-12-01  3:25           ` Junio C Hamano
2010-11-28 20:30       ` Daniel Reichelt
2010-11-28 21:07         ` Jakub Narebski
2010-11-28 21:25           ` Daniel Reichelt
2010-11-28 21:10         ` Jonathan Nieder
2010-11-28 21:28           ` Daniel Reichelt
2010-11-28 22:05           ` Jakub Narebski
2010-11-29  0:19             ` Jonathan Nieder [this message]
2010-11-29  0:51               ` [PATCH/RFC] gitweb/README: About $base_url etc. and $per_request_config Jakub Narebski
2010-11-29 17:57               ` [PATCH/RFC] gitweb: Preserve $base_url if it was set Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101129001908.GA26358@burratino \
    --to=jrnieder@gmail.com \
    --cc=debian@nachtgeist.net \
    --cc=git@vger.kernel.org \
    --cc=giuseppe.bilotta@gmail.com \
    --cc=jnareb@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).