Project information
Author: Originally written by Kay Sievers < kay.sievers@vrfy.org >
Maintainer: Git mailing list < git@vger.kernel.org >
Repository: From the git version 1.4.0 gitweb is bundled with git
License: GPLv2
Project description
Gitweb is a Git web interface, the one working on http://www.kernel.org/git/. It is written in Perl, and can be used as a CGI script, or as a mod_perl legacy script (run by ModPerl::Registry handler). It allows browsing a git repository (or a set of git repositories) using a web browser.
Using gitweb you can browse directory trees at arbitrary revisions, view contents of files (blobs), see log or shortlog of a given branch, examine commits, commit messages and changes made by a given commit. Gitweb can generate feeds in RSS or Atom format. You can get any given version of a file; if not disabled you can download a snapshot of a given version of a project (project tree at given revision). You can search (if it is not disabled) for commits by an author, added to repository by a comitter, commit with commit message (commit description) which includes some text.
There even exists a git-instaweb script to setup gitweb and a web server for browsing the local repository.
See also
Documentation
gitweb/README (txt), describes build configuration variables, runtime configuration, and example webserver (Apache) configuration.
gitweb/INSTALL (txt), describes how to build gitweb, build time configuration, gitweb config file, how to set-up gitweb repositories and repo specific config, and two example webserver (Apache2) configurations.
Notable forks
gitweb-xmms2 (gitweb with XMMS2 project modifications) by Sham Chukoury. Forked off before gitweb was included in the git repository. Extra features (added usually in project specific way) include: committags support (i.e. BUG(nn) is hyperlink to appropriate issue in Mantis bug tracker), syntax highlighting in 'blob' view, generating anchors to function definitions with the help of on-the-fly generated tags file. It implemented snapshot support and had separate CSS file before mainline gitweb.
repo.or.cz (custom gitweb patches) by Petr Baudis. Uses the current version of gitweb as base, has all features enabled. Includes extra scripts for creating and managing repositories, and integration with git-browser, a graphical history viewer in JavaScript.
kernel.org (gitweb w/ caching) by John 'Warthog9' Hawley. Adds gitweb-specific caching support on top of generic gitweb. Split into many smaller modules.
Other web interfaces
cgit (doubles as homepage) by Lars Hjemli in C (compiled CGI), uses libgit.a, has builtin caching, fast
wit (download) by Christian Meder in Python, uses PATH_INFO extensively. (defunct, no longer maintained)
gitarella (homepage) by Flameeyes in Ruby, supports CGI and FastCGI interfaces. Inspired by gitweb. (demo no longer works)
Wit (homepage) by Daniel Chokola in Ruby/eRuby. Easy setup, configuration (YAML), and customization (customizable CSS, templates), clean code.
git-php (homepage) by Zack Bartel in PHP. Goals: robust, customizable. Gitweb look-alike.
git-php (blog) by Peeter Vois in PHP. Continuation of work by Zack Bartel.viewgit: another PHP git repository browser written from scratch.

