All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: Wincent Colaiuta <win@wincent.com>
Cc: Git Mailing List <git@vger.kernel.org>, Petr Baudis <pasky@suse.cz>
Subject: Re: gitweb bug: broken "next" and other links
Date: Fri, 15 Feb 2008 22:16:41 +0100	[thread overview]
Message-ID: <200802152216.42533.jnareb@gmail.com> (raw)
In-Reply-To: <E16BED2E-C146-44D8-BD90-ECF0DF89CA35@wincent.com>

On Tue, 12 Feb 2008, Wincent Colaiuta wrote:
> El 11/2/2008, a las 16:30, Jakub Narebski escribió:

>> Below there is a fix for that; actully only second part mentioned
>> (and first in patch) is needed, i.e. moving setting $params{'project'}
>> before dealing with -replay is needed I think to fix this bug.

Below there is minimal patch which I am using, which only
moves setting $params{'project'}, and does not affect replay.

>> Could you test it please?
> 
> Your patch fixes the "next" links in the shortlog and log views.
> 
> It doesn't fix the broken "raw" links in the commitdiff view. I'm  
> still seeing links like:
> 
> http://example.com/ARRAY(0x8c97f64)?a=commitdiff_plain;h=f29d56269a1c3bd4a970897397470f41553a64f9

WORKSFORME. I could not reproduce this error with the patch
below applied. I think that the previous version of patch should
give the same result; should also fix this bug.

Besides, both "next" and "raw" links are generated using the same
mechanism. It would be strange if one of them broke and other didn't.

-- >8 --
From: Jakub Narebski <jnareb@gmail.com>
Date: Thu, 14 Feb 2008 09:22:30 +0100
Subject: [PATCH] gitweb: Fix bug in href(..., -replay=>1) when using 'pathinfo' form

URLs generated by href(..., -replay=>1) (which includes 'next page'
links and alternate view links) didn't set project info correctly
when current page URL is in pathinfo form.

This resulted in broken links such like:
  http://www.example.com/w/ARRAY(0x85a5318)?a=shortlog;pg=1
if the 'pathinfo' feature was used, or
  http://www.example.com/w/?a=shortlog;pg=1
if it wasn't, instead of correct:
  http://www.example.com/w/project.git?a=shortlog;pg=1

This was caused by the fact that href() always replays params in the
arrayref form, were they multivalued or singlevalued, and the code
dealing with 'pathinfo' feature couldn't deal with $params{'project'}
being arrayref.

Setting $params{'project'} is moved before replaying params; this
ensures that 'project' parameter is processed correctly.

Noticed-by: Peter Oberndorfer <kumbayo84@arcor.de>
Noticed-by: Wincent Colaiuta <win@wincent.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
 gitweb/gitweb.perl |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 5e88637..a89b478 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -611,6 +611,8 @@ sub href(%) {
 	);
 	my %mapping = @mapping;
 
+	$params{'project'} = $project unless exists $params{'project'};
+
 	if ($params{-replay}) {
 		while (my ($name, $symbol) = each %mapping) {
 			if (!exists $params{$name}) {
@@ -620,8 +622,6 @@ sub href(%) {
 		}
 	}
 
-	$params{'project'} = $project unless exists $params{'project'};
-
 	my ($use_pathinfo) = gitweb_check_feature('pathinfo');
 	if ($use_pathinfo) {
 		# use PATH_INFO for project name
-- 
1.5.4

  parent reply	other threads:[~2008-02-15 21:17 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-11 12:51 gitweb bug: broken "next" and other links Wincent Colaiuta
2008-02-11 13:02 ` Jakub Narebski
2008-02-11 13:33   ` Wincent Colaiuta
2008-02-11 15:30     ` Jakub Narebski
2008-02-12 11:39       ` Jakub Narebski
2008-02-12 11:48         ` Jakub Narebski
2008-02-12 12:24       ` Wincent Colaiuta
2008-02-12 13:10         ` Jakub Narebski
2008-02-12 13:34           ` Wincent Colaiuta
2008-02-15 21:16         ` Jakub Narebski [this message]
2008-02-17 10:51           ` Wincent Colaiuta
2008-02-17 11:05             ` Junio C Hamano
2008-02-18 23:32             ` Jakub Narebski
2008-02-18 23:56               ` Junio C Hamano
2008-02-19  0:23                 ` Jakub Narebski
2008-02-19  0:23               ` Wincent Colaiuta

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=200802152216.42533.jnareb@gmail.com \
    --to=jnareb@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=pasky@suse.cz \
    --cc=win@wincent.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.