aboutsummaryrefslogtreecommitdiffstats
path: root/configfile.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2008-04-28Redesign the caching layerLars Hjemli6-210/+418
The original caching layer in cgit has no upper bound on the number of concurrent cache entries, so when cgit is traversed by a spider (like the googlebot), the cache might end up filling your disk. Also, if any error occurs in the cache layer, no content is returned to the client. This patch redesigns the caching layer to avoid these flaws by * giving the cache a bound number of slots * disabling the cache for the current request when errors occur The cache size limit is implemented by hashing the querystring (the cache lookup key) and generating a cache filename based on this hash modulo the cache size. In order to detect hash collisions, the full lookup key (i.e. the querystring) is stored in the cache file (separated from its associated content by ascii 0). The cache filename is the reversed 8-digit hexadecimal representation of hash(key) % cache_size which should make the filesystem lookup pretty fast (if directory content is indexed/sorted); reversing the representation avoids the problem where all keys have equal prefix. There is a new config option, cache-size, which sets the upper bound for the cache. Default value for this option is 0, which has the same effect as setting nocache=1 (hence nocache is now deprecated). Included in this patch is also a new testfile which verifies that the new option works as intended. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-17Fix commitdiff annoyanceLars Hjemli1-1/+1
Someone were a bit sloppy when the commitdiff got included 'inline' in commit 89aa3c0d0a4c6d9885272602005975b763ea1604. This patch deletes a stray `)` and makes sure the diffstat summary `<div>` is closed before the full diff is printed. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-15Cleanup page headerLars Hjemli1-17/+4
Fix some invalid html, remove dead code. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-14Fix search in repo index even if caching is enabledLars Hjemli1-1/+3
The repository index page needed to include the querystring in the cache filename. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-14Make a few more columns in repolist and log view clickableLars Hjemli2-0/+7
Less mouse movement is nice. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-14Make branches, tags and log play better together in the summary viewLars Hjemli3-34/+43
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-14Fix more css uglinessLars Hjemli1-10/+4
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-14cgit.css: set form marginsLars Hjemli1-1/+1
According to the css2 spec, htmlforms have 1.12em top and bottom margins. That doesn't play well with the placement of the search form, so lets force it to use 0em margins. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-14Fix css font-familyLars Hjemli1-1/+1
When the sidebar was introduced in v0.7 the default font-family property got messed up, but this commit should fix the issue. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-13Make repository search case insensitiveLars Hjemli2-4/+11
This reuses the strcasestr() compiled or linked by libgit.a to implement a case insensitive variation of the repository search. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-13Remove 'patch' link from tab, add to commit viewLars Hjemli3-2/+8
It's a bit confusing to enter the patch view from the tab, since it has no layout. And the commit view has always lacked showing the commit id. Both of these warts are fixed by this commit, which adds a new header line in the commit view which shows the commit id as a 'permalink' to the current commit and also adds a link to the patch view of the current commit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-13Implement minimal freetext search in the repolistLars Hjemli2-13/+47
This makes the repolist much more usable when there's a lot of repositories registered in cgitrc. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-13More layout fixesLars Hjemli3-33/+98
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-12Minor fixup in tree-view cssLars Hjemli1-3/+2
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-12Reintroduce the branch switcherLars Hjemli2-0/+17
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-12Add fixed link to index page from repo headerLars Hjemli1-3/+9
This makes it easier to get back to the index page, and also re-enables the usage of logo-link in cgitrc. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-12Include diff in commit viewLars Hjemli1-3/+5
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-12Replace sidebar/logoLars Hjemli3-175/+97
This replaces the sidebar with a more 'common' header layout and also updates the logo. Not quite finished yet, though. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-09Use GIT-1.5.5Lars Hjemli2-1/+1
2008-04-08Don't specify mimetype in ui-blob.cLars Hjemli2-2/+3
But be sure to specify correct filename. This way, the client can hopefully guess a sensible mimetype based on the filename suffix, and cgit can ignore the issue altogether. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-08Reset ctx.repo to NULL when the config parser is finishedLars Hjemli1-0/+1
This global variable is used by the config parsing callback to keep track of the currently configured repository. If it is not reset to NULL when the config parser is finished, and neither `url` or `r` is specified on the querystring, cgit will wrongly consider the last configured repo as selected. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-08Move cgit_parse_query() from parsing.c to html.c as http_parse_querystring()Lars Hjemli6-64/+68
This is a generic http-function. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-04-01Use GIT-1.5.5-rc2Lars Hjemli1-0/+0
2008-03-28Move function for configfile parsing into configfile.[ch]Lars Hjemli6-78/+99
This is a generic function which wanted its own little object file. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-27Add cache.hLars Hjemli4-14/+25
The functions found in cache.c are only used by cgit.c, so there's no point in rebuilding all object files when the cache interface is changed. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-25Remove global and obsolete cgit_cmdLars Hjemli2-2/+1
This variable was obsoleted by cmd.c. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-25Makefile: copy the QUIET constructs from the Makefile in git.gitLars Hjemli1-5/+31
These constructs were introduced by Shawn O. Pearce in commit 74f2b2a8d006a49e1be7e30731c2f7365d2741d1. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Move cgit_version from shared.c to cgit.cLars Hjemli3-3/+5
With the matching Makefile change, this makes sure that only cgit.o and cgit proper needs to be rebuildt when VERSION has been modified. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Makefile: autobuild dependency rulesLars Hjemli2-1/+11
This uses gcc to generate dependency rules for each `.o` file, based on the corresponding `.c` file, into a new set of `.d` files (which are also defined to depend on the same set of source files as their `.o` files). Result: * all objectfile dependencies are correctly calculated * only the necessary dependencies are recalculated when a sourcefile is updated Inspiration for the build rules: * http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites * http://make.paulandlesley.org/autodep.html Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Initial Makefile cleanupLars Hjemli1-7/+22
Sort the list of object files to improve readability/mergeability and remove manual dependency information which will soon be generated automatically. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Move non-generic functions from shared.c to cgit.cLars Hjemli3-157/+155
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Add ui-shared.hLars Hjemli13-32/+47
This is finally a proper headerfile for the shared ui-functions which used to reside in cgit.h Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Add separate header-files for each page/viewLars Hjemli15-189/+257
Yet another step towards removing cgit.h. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Refactor snapshot supportLars Hjemli4-86/+90
The snapshot support needs to be split between output- and config-related functions to get the layering between shared.c and ui-*.c right. There is also some codestyle-issues which needs fixing to make the snapshot functions more similar to the rest of the cgit code. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Add command dispatcherLars Hjemli7-110/+169
This simplifies the code in cgit.c and makes it easier to extend cgit with new pages/commands. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Remove obsolete cacheitem parameter to ui-functionsLars Hjemli6-17/+16
This parameter hasn't been used for a very long time... Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Add struct cgit_page to cgit_contextLars Hjemli8-88/+113
This struct is used when generating http headers, and as such is another small step towards the goal of the whole cleanup series; to invoke each page/view function with a function pointer. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-23Use GIT-1.5.5.rc1Lars Hjemli2-1/+1
2008-03-18Introduce html.hLars Hjemli17-46/+71
All html-functions can be quite easily separated from the rest of cgit, so lets do it; the only issue was html_filemode which uses some git-defined macros so the function is moved into ui-shared.c::cgit_print_filemode(). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-17Fix segfault in patch view for root commitLars Hjemli2-1/+42
The code for patch view assumed the current commit would always have a parent, which made cgit segfault when that wasn't the case. This fixes the bug and adds a test-script for patch view which includes a test for the inital commit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-17Use GIT-1.5.4.4Lars Hjemli2-1/+1
2008-02-24tests/setup.sh: cleanup test script output and loggingLars Hjemli1-2/+8
Log the complete output from each test-script in test-output.log and tell the user about the logfile when a test-script fails. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-24t0010-validate.sh: return on cgit errorsLars Hjemli1-1/+4
The earlier segfault in cgit passed by unnoticed by this test-script due to the pipe between cgit and sed. There might be a more elegant solution to this problem, but my shellscript- foo is weak. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-24Make output from `make test` more readableLars Hjemli1-2/+2
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-24Brown paper bag: don't use `grep -v`Lars Hjemli2-5/+5
For some inexplicable reason I'd gotten the semantics of `grep -v` totally backwards, thinking it somehow would make the exitcode from grep indicate the non-match of the specified pattern. This fixes the broken tests and gives me a valuable lession about shell programming at the same time. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-24Add regression-test for description-less reposLars Hjemli2-1/+5
The segfault fixed in commit eacde43d7184452e1fdc90b982b531f1f5239923 was triggered when the html-functions manipulated string literals. One callpatch which could trigger the bug is in ui-repolist.c when repo descriptions are passed to html_ntxt(): if a repo is lacking a description, the literal string "[no description]" is used. This patch changes test/setup.sh such that the first repo has no description, and adds tests for both "[no description]" and "the bar repo" (description of the other repo) to tests/t0101-index.sh, which should be enought to catch regressions in these functions. Noticed-by: Hiroki Hattori <seagull.kamome@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-23Fix segfaultHiroki Hattori1-15/+5
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-16Improve initialization of git directoryLars Hjemli2-10/+9
Using the functions offered by libgit feels like the right thing to do. Also, make sure that config errors gets properly reported. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-16Move cgit_repo into cgit_contextLars Hjemli11-103/+101
This removes the global variable which is used to keep track of the currently selected repository, and adds a new variable in the cgit_context structure. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-16Add all config variables into struct cgit_contextLars Hjemli7-175/+166
This removes another big set of global variables, and introduces the cgit_prepare_context() function which populates a context-variable with compile-time default values. Signed-off-by: Lars Hjemli <hjemli@gmail.com>