5 This is an attempt to create a fast web interface for the git scm, using a
6 builtin cache to decrease server io-pressure.
11 Building cgit involves building a proper version of git. How to do this
12 depends on how you obtained the cgit sources:
14 a) If you're working in a cloned cgit repository, you first need to
15 initialize and update the git submodule:
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
21 b) If you're building from a cgit tarball, you can download a proper git
27 When either a) or b) has been performed, you can build and install cgit like
33 This will install cgit.cgi and cgit.css into "/var/www/htdocs/cgit". You can
34 configure this location (and a few other things) by providing a "cgit.conf"
35 file (see the Makefile for details).
47 A new Directory-section must probably be added for cgit, possibly something
50 <Directory "/var/www/htdocs/cgit/">
60 The file /etc/cgitrc is read by cgit before handling a request. In addition
61 to runtime parameters, this file also contains a list of the repositories
64 A template cgitrc is shipped with the sources, and all parameters and default
65 values are documented in this file.
70 When cgit is invoked it looks for a cachefile matching the request and
71 returns it to the client. If no such cachefile exist (or if it has expired),
72 the content for the request is written into the proper cachefile before the
75 If the cachefile has expired but cgit is unable to obtain a lock for it, the
76 stale cachefile is returned to the client. This is done to favour page
77 throughput over page freshness.
79 The generated content contains the complete response to the client, including
80 the http-headers "Modified" and "Expires".
85 * Submodule links in the directory listing page have a fixed format per
86 repository. This should probably be extended to a generic map between
87 submodule path and url.
89 * The log-page should have more/better search options (author, committer,
90 pickaxe, paths) and possibly support arbitrary revision specifiers.
92 * A set of test-scripts is required before cgit-1.0 can be released.
94 Patches/bugreports/suggestions/comments are always welcome, please feel free
95 to contact the author: hjemli@gmail.com