From: Jakub Narebski <jnareb@gmail.com>
To: Eli Barzilay <eli@barzilay.org>
Cc: git@vger.kernel.org
Subject: Re: gitweb.perl suggestion
Date: Thu, 08 Jul 2010 08:30:54 -0700 (PDT) [thread overview]
Message-ID: <m339vum1od.fsf@localhost.localdomain> (raw)
In-Reply-To: <19509.14862.368282.470934@winooski.ccs.neu.edu>
Eli Barzilay <eli@barzilay.org> writes:
> Currently, if I go to
>
> http://server/gitweb/project/<commit-sha1>
>
> I get to the shortlog page, which is not as useful as the commit
> page. But changing this to have a default `commit' action isn't right
> either since the shortlog is more appropriate with
>
> http://server/gitweb/project/<commit-sha1>..<other-commit-sha1>
>
> So how about changing this:
>
> $input_params{'action'} ||= "shortlog";
>
> to this:
>
> $input_params{'action'} ||= ((defined $parentrefname) ? "shortlog" : "commit");
>
> which will make the first case show the commit, and the second show
> the shortlog?
Thanks for noticing and informing about this issue.
Unfortunately for having a fast fixup, you have hit upon larger issue.
Namely how gitweb guesses action if there isn't provided one.
Currently there is one set of rules for evaluate_path_info (used with
path_info URL like e.g. http://server/gitweb/project/<sha1>), and
another in dispath() after evaluating path info and query params (query
params version would be http://server/gitweb?p=project;h=<sha1>).
path_info | action
-----------------------------+--------------------------
object:dirname/ | tree
object:filename | blob_plain
objectA..objectB:filename | blobdiff_plain
object | shortlog
objectA..objectB | shortlog
query params | action
-----------------------------+---------------------------
h=object | git_get_type(object)
hb=object;f=filename [*] | git_get_type(object:filename)
[*] There is no optimization that if it ends in '/' it is 'tree' object,
and if it is not, then it is 'blob' (file) object.
Finally if project is defined, default action is 'summary', and if it
isn't then default action is 'project_list'.
So your proposed solution is good enough, but perhaps better would be to
leave 'action' unset if there is no parent info? Then dispatch would
guess action, instead of doing it in less sophisticated way in
evaluate_path_info().
--
Jakub Narebski
Poland
ShadeHawk on #git
next prev parent reply other threads:[~2010-07-08 15:31 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-08 2:38 gitweb.perl suggestion Eli Barzilay
2010-07-08 15:30 ` Jakub Narebski [this message]
2010-07-08 17:34 ` Eli Barzilay
2010-07-08 19:01 ` Jakub Narebski
2010-07-08 19:05 ` Eli Barzilay
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=m339vum1od.fsf@localhost.localdomain \
--to=jnareb@gmail.com \
--cc=eli@barzilay.org \
--cc=git@vger.kernel.org \
/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).