all repos — cgit @ 2ab1cd9f3b796fa679c9d1b1ce338aaa2b0b1e53

a hyperfast web frontend for git written in c

README (view raw)

 1
 2                       cgit - cgi for git
 3
 4
 5This is an attempt to create a fast web interface for the git scm, using a
 6builtin cache to decrease server io-pressure.
 7
 8
 9Installation
10
11Building cgit involves building a proper version of git. How to do this
12depends on how you obtained the cgit sources:
13
14a) If you're working in a cloned cgit repository, you first need to
15initialize and update the git submodule:
16
17  $ git submodule init     # register the git submodule in .git/config
18  $ $EDITOR .git/config    # if you want to specify a different url for git
19  $ git submodule update   # clone/fetch and checkout correct git version
20
21b) If you're building from a cgit tarball, you can download a proper git
22version like this:
23
24  $ make get-git
25
26
27When either a) or b) has been performed, you can build and install cgit like
28this:
29
30  $ make
31  $ sudo make install
32
33This will install cgit.cgi and cgit.css into "/var/www/htdocs/cgit". You can
34configure this location (and a few other things) by providing a "cgit.conf"
35file (see the Makefile for details).
36
37
38Dependencies:
39  -git 1.7.4
40  -zip lib
41  -crypto lib
42  -openssl lib
43
44
45Apache configuration
46
47A new Directory-section must probably be added for cgit, possibly something
48like this:
49
50  <Directory "/var/www/htdocs/cgit/">
51      AllowOverride None
52      Options +ExecCGI
53      Order allow,deny
54      Allow from all
55  </Directory>
56
57
58Runtime configuration
59
60The file /etc/cgitrc is read by cgit before handling a request. In addition
61to runtime parameters, this file may also contain a list of repositories
62displayed by cgit (see cgitrc.5.txt for further details).
63
64
65The cache
66
67When cgit is invoked it looks for a cachefile matching the request and
68returns it to the client. If no such cachefile exist (or if it has expired),
69the content for the request is written into the proper cachefile before the
70file is returned.
71
72If the cachefile has expired but cgit is unable to obtain a lock for it, the
73stale cachefile is returned to the client. This is done to favour page
74throughput over page freshness.
75
76The generated content contains the complete response to the client, including
77the http-headers "Modified" and "Expires".
78
79
80Online presence
81
82* The cgit homepage is hosted by cgit at http://git.zx2c4.com/cgit/about
83
84* Patches, bugreports, discussions and support should go to the cgit
85  mailing list: cgit@hjemli.net