git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: "J.H." <warthog19@eaglescrag.net>
Cc: Manuel Doninger <manuel@doninger.net>, git <git@vger.kernel.org>
Subject: Re: Gitweb: Show git clone url on projects list
Date: Tue, 12 Oct 2010 01:11:08 +0200	[thread overview]
Message-ID: <201010120111.09436.jnareb@gmail.com> (raw)
In-Reply-To: <4CB3812B.8060209@eaglescrag.net>

On Mon, 11 Oct 2010, J.H. wrote:
> Sorry for the late response, was traveling on the 7th.  Comments inline.
> 
> > There were multiple attempts to add such link to core gitweb (i.e. the
> > one present in git 1.7.3), but were not merged in due to runing
> > aground the following problems:
> > 
> > 1. There might be more than one link for one git repository.  One can
> >    provide git://, http:// and ssh:// URLs.  Which one to chose?
> > 
> >    This issue might be solved by either using first one on the list,
> >    or filtering and showing link(s) to anonymous unauthenticated ones,
> >    i.e. _git_ link (if git:// URL exists) and perhaps _http_ link (if
> >    http:// URL exists).
> 
> If you are running a uniform enough site, http://git.kernel.org,
> http://git.fedorahosted.org/git/, etc it's easy enough to deal with.
> This only becomes an issue if/when you allow more generic trees to
> exist, and aren't expecting a uniform git link.

The issue is that solution in core gitweb (as opposed to local version)
should be generic enough.  Is supporting single link per repository
generic enough?

> > 2. More important issue is that besides @git_base_url_list the URL or
> >    URLs for a repository can come from various other places: from
> >    'cloneurl' text file and from `gitweb.url' configuration variable.
> >    It it was taken into account (even to check that such configuration
> >    does not exist) it would badly affect performance of generating
> >    projects list page.
> > 
> >    The git.kernel.org gitweb doesn't have this problem because it uses
> >    @git_base_url_list (I think unconditionally); also it supports
> >    output caching, so eventual performance hit is migitated.
> 
> We actually don't, at least currently, use @git_base_url_list.  Right
> now there's a configuration variable to set a uniform server / base url,
> and then use project path to append to that.  git:// in this case is
> hard coded, though with http being smart now there is no reason why that
> should be that way (no one has asked for the change &/or submitted a
> patch to me to alter that behavior).

Well, @git_base_url_list by default is empty or is single-element list
filled using GITWEB_BASE_URL build time configuration variable.  The
URL or URLs for a repository are composed of elements of @git_base_url_list
concatenated with project name; in most common non-empty case it would be

  "$git_base_url_list[0]/$project"

while, from what I understand, the solution used by http://git.kernel.org
is

  "git://$gitlinkurl/$project"

Not much difference.
 
> The caching helps, though since I'm not actually using @git_base_url the
> caching isn't of significant impact, since I only need to know the path
> vs. poking in the repo directly.  (that said caching still buys me a lot
> of performance overall).
> 
> Assuming you are using my caching version of gitweb setting $gitlinkurl
> in your config file to be the base (before the path) of your link, it
> should work.  Should get that even if caching is disabled, though YMMV I
> don't do a lot of testing with the cache turned off, and I haven't
> written a test case for that yet.

Caching is not necessary when using only @git_base_url_list, but is
necessary when project URLs can come from $projectroot/$project/cloneurl
file, or from `gitweb.url` repository config.  And even if they are not
set, if they can be used, we have to check them.

The solution might be to specify somehow that only @git_base_url_list
(or even only $git_base_url_list[0]) is to be taken into account when
generating _git_ links on project list page.

-- 
Jakub Narebski
Poland

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

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <AANLkTi=5P1OiKprOifyu2xuFjVToL5kE9dXrEr3gSr+_@mail.gmail.com>
2010-10-07  8:47 ` Gitweb: Show git clone url on projects list Manuel Doninger
2010-10-07 10:00   ` Jakub Narebski
2010-10-11 21:27     ` J.H.
2010-10-11 23:11       ` Jakub Narebski [this message]

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=201010120111.09436.jnareb@gmail.com \
    --to=jnareb@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=manuel@doninger.net \
    --cc=warthog19@eaglescrag.net \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).