Subject: Re: Gitweb: Show git clone url on projects list

From: Jakub Narebski <[email-masked]>
Date: Thu, 07 Oct 2010 03:00:56 -0700 (PDT)

Manuel Doninger <[email-masked]> writes:

> I installed gitweb on my server, and it works great.
> In gitweb.conf I defined @git_base_url_list, an on every projects
> status page the clone url is shown.
> But I want also the clone url shown on the projects list, like on
> http://git.kernel.org/ (the "git" link on the right border of every
> line).
> How can I do this (i use git 1.7.3)?

The http://git.kernel.org site uses *modified* gitweb, which among
others include support for _git_ link on projects_list page.  You can
get it from
  http://git.kernel.org/?p=git/warthog9/gitweb.git      (gitweb)
  git://git.kernel.org/pub/scm/git/warthog9/gitweb.git  (clone url)
You would need only `--depth=1` shallow clone.

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).

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.

-- 
Jakub Narebski
Poland
ShadeHawk on #git