gitweb / READMEon commit Merge branch 'master' of git://git.kernel.org/pub/scm/gitk/gitk (d60a6a6)
   1GIT web Interface
   2=================
   3
   4The one working on:
   5  http://www.kernel.org/git/
   6
   7From the git version 1.4.0 gitweb is bundled with git.
   8
   9
  10How to configure gitweb for your local system
  11---------------------------------------------
  12
  13You can specify the following configuration variables when building GIT:
  14 * GITWEB_SITENAME
  15   Shown in the title of all generated pages, defaults to the servers name.
  16 * GITWEB_PROJECTROOT
  17   The root directory for all projects shown by gitweb.
  18 * GITWEB_LIST
  19   points to a directory to scan for projects (defaults to project root)
  20   or to a file for explicit listing of projects.
  21 * GITWEB_HOMETEXT
  22   points to an .html file which is included on the gitweb project
  23   overview page.
  24 * GITWEB_CSS
  25   Points to the location where you put gitweb.css on your web server.
  26 * GITWEB_LOGO
  27   Points to the location where you put git-logo.png on your web server.
  28 * GITWEB_CONFIG
  29   This file will be loaded using 'require' and can be used to override any
  30   of the options above as well as some other options - see the top of
  31   'gitweb.cgi' for their full list and description.  If the environment
  32   $GITWEB_CONFIG is set when gitweb.cgi is executed the file in the
  33   environment variable will be loaded instead of the file
  34   specified when gitweb.cgi was created.
  35
  36
  37Runtime gitweb configuration
  38----------------------------
  39
  40You can adjust gitweb behaviour using the file specified in `GITWEB_CONFIG`
  41(defaults to 'gitweb_config.perl' in the same directory as the CGI).
  42See the top of 'gitweb.cgi' for the list of variables and some description.
  43The most notable thing that is not configurable at compile time are the
  44optional features, stored in the '%features' variable. You can find further
  45description on how to reconfigure the default features setting in your
  46`GITWEB_CONFIG` or per-project in `project.git/config` inside 'gitweb.cgi'.
  47
  48
  49Webserver configuration
  50-----------------------
  51
  52If you want to have one URL for both gitweb and your http://
  53repositories, you can configure apache like this:
  54
  55<VirtualHost www:80>
  56    ServerName git.domain.org
  57    DocumentRoot /pub/git
  58    RewriteEngine on
  59    RewriteRule ^/(.*\.git/(?!/?(info|objects|refs)).*)?$ /cgi-bin/gitweb.cgi%{REQUEST_URI}  [L,PT]
  60    SetEnv      GITWEB_CONFIG   /etc/gitweb.conf
  61</VirtualHost>
  62
  63The above configuration expects your public repositories to live under
  64/pub/git and will serve them as http://git.domain.org/dir-under-pub-git,
  65both as cloneable GIT URL and as browseable gitweb interface.
  66If you then start your git-daemon with --base-path=/pub/git --export-all
  67then you can even use the git:// URL with exactly the same path.
  68
  69Setting the environment variable GITWEB_CONFIG will tell gitweb to use
  70the named file (i.e. in this example /etc/gitweb.conf) as a
  71configuration for gitweb.  Perl variables defined in here will
  72override the defaults given at the head of the gitweb.perl (or
  73gitweb.cgi).  Look at the comments in that file for information on
  74which variables and what they mean.
  75
  76
  77Originally written by:
  78  Kay Sievers <kay.sievers@vrfy.org>
  79
  80Any comment/question/concern to:
  81  Git mailing list <git@vger.kernel.org>