author | Lars Hjemli <hjemli@gmail.com> | 2007-09-04 09:49:40 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-09-04 09:53:54 (UTC) |
commit | bd8e8a3d709204646a4f1ee9d81cce1cdd912de9 (patch) (unidiff) | |
tree | 63f57fa0b2ee94c0da84e377f1aa49e593f308b5 | |
parent | 0de21a8d4176f15b4185a2e083787eeb05d95a77 (diff) | |
download | cgit-bd8e8a3d709204646a4f1ee9d81cce1cdd912de9.zip cgit-bd8e8a3d709204646a4f1ee9d81cce1cdd912de9.tar.gz cgit-bd8e8a3d709204646a4f1ee9d81cce1cdd912de9.tar.bz2 |
Update README
Add new build instructions, extend the "Missing features" section and add
a note about patches/email address of the author.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | README | 57 |
1 files changed, 39 insertions, 18 deletions
@@ -1,81 +1,102 @@ | |||
1 | 1 | ||
2 | cgit - cgi for git | 2 | cgit - cgi for git |
3 | 3 | ||
4 | 4 | ||
5 | This is an attempt to create a fast web interface for the git scm, using a | 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. | 6 | builtin cache to decrease server io-pressure. |
7 | 7 | ||
8 | 8 | ||
9 | Installation | 9 | Installation |
10 | 10 | ||
11 | $ make | 11 | Building cgit involves building a proper version of git. How to do this |
12 | $ su | 12 | depends on how you obtained the cgit sources: |
13 | $ make install | 13 | |
14 | a) If you're working in a cloned cgit repository, you first need to | ||
15 | initialize 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 | |||
21 | b) If you're building from a cgit tarball, you can download a proper git | ||
22 | version like this: | ||
14 | 23 | ||
15 | This will install cgit.cgi and cgit.css into "/var/www/htdocs/cgit". | 24 | $ make get-git |
16 | 25 | ||
17 | Note: The initial "make" will create a submodule 'git' and clone the git | ||
18 | repository at git://git.kernel.org/pub/scm/git/git.git in it. If you | ||
19 | already have a local git git repository that you want to use as origin | ||
20 | for the submodule, run | ||
21 | 26 | ||
22 | $ git clone -s <path-to-git-repo> git | 27 | When either a) or b) has been performed, you can build and install cgit like |
23 | $ ./submodules.sh -u | 28 | this: |
24 | 29 | ||
25 | before running "make". | 30 | $ make |
31 | $ sudo make install | ||
26 | 32 | ||
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). | ||
27 | 36 | ||
28 | Dependencies | ||
29 | 37 | ||
30 | -git (1.5.2-rc0 or newer, due to git submodule) installed | 38 | Dependencies: |
39 | -git 1.5.3 | ||
31 | -zip lib | 40 | -zip lib |
32 | -crypto lib | 41 | -crypto lib |
33 | -openssl lib | 42 | -openssl lib |
34 | 43 | ||
35 | 44 | ||
36 | Apache configuration | 45 | Apache configuration |
37 | 46 | ||
38 | A new Directory-section must probably be added for cgit, possibly something | 47 | A new Directory-section must probably be added for cgit, possibly something |
39 | like this: | 48 | like this: |
40 | 49 | ||
41 | <Directory "/var/www/htdocs/cgit/"> | 50 | <Directory "/var/www/htdocs/cgit/"> |
42 | AllowOverride None | 51 | AllowOverride None |
43 | Options ExecCGI | 52 | Options ExecCGI |
44 | Order allow,deny | 53 | Order allow,deny |
45 | Allow from all | 54 | Allow from all |
46 | </Directory> | 55 | </Directory> |
47 | 56 | ||
48 | 57 | ||
49 | Runtime configuration | 58 | Runtime configuration |
50 | 59 | ||
51 | The file /etc/cgitrc is read by cgit before handling a request. In addition | 60 | The file /etc/cgitrc is read by cgit before handling a request. In addition |
52 | to runtime parameters, this file also contains a list of the repositories | 61 | to runtime parameters, this file also contains a list of the repositories |
53 | displayed by cgit. | 62 | displayed by cgit. |
54 | 63 | ||
55 | A template cgitrc is shipped with the sources, and all parameters and default | 64 | A template cgitrc is shipped with the sources, and all parameters and default |
56 | values are documented in this file. | 65 | values are documented in this file. |
57 | 66 | ||
58 | 67 | ||
59 | The cache | 68 | The cache |
60 | 69 | ||
61 | When cgit is invoked it looks for a cachefile matching the request and | 70 | When cgit is invoked it looks for a cachefile matching the request and |
62 | returns it to the client. If no such cachefile exist (or if it has expired), | 71 | returns it to the client. If no such cachefile exist (or if it has expired), |
63 | the content for the request is written into the proper cachefile before the | 72 | the content for the request is written into the proper cachefile before the |
64 | file is returned. | 73 | file is returned. |
65 | 74 | ||
66 | If the cachefile has expired but cgit is unable to obtain a lock for it, the | 75 | If the cachefile has expired but cgit is unable to obtain a lock for it, the |
67 | stale cachefile is returned to the client. This is done to favour page | 76 | stale cachefile is returned to the client. This is done to favour page |
68 | throughput over page freshness. | 77 | throughput over page freshness. |
69 | 78 | ||
70 | The generated content contains the complete response to the client, including | 79 | The generated content contains the complete response to the client, including |
71 | the http-headers "Modified" and "Expires". | 80 | the http-headers "Modified" and "Expires". |
72 | 81 | ||
73 | 82 | ||
74 | The mis(sing) features | 83 | The missing features |
84 | |||
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. | ||
88 | |||
89 | * Branch- and tag-lists in the summary page can get very long, they should | ||
90 | probably only show something like the ten "latest modified" branches and | ||
91 | a similar number of "most recent" tags. | ||
92 | |||
93 | * There should be a new page for browsing refs/heads and refs/tags, with links | ||
94 | from the summary page whenever the branch/tag lists overflow. | ||
75 | 95 | ||
76 | Submodule links in the directory listing page have a fixed format per | 96 | * The log-page should have more/better search options (author, committer, |
77 | repository. This should probably be extended to a generic map between | 97 | pickaxe, paths) and possibly support arbitrary revision specifiers. |
78 | submodule path and url. | ||
79 | 98 | ||
99 | * A set of test-scripts is required before cgit-1.0 can be released. | ||
80 | 100 | ||
81 | The end. | 101 | Patches/bugreports/suggestions/comments are always welcome, please feel free |
102 | to contact the author: hjemli@gmail.com | ||