aboutsummaryrefslogtreecommitdiffstats
path: root/cgit.c
Commit message (Expand)AuthorAgeFilesLines
* Implement plain view•••This implements a way to access plain blobs by path (similar to the tree view) instead of by sha1. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-08-061-0/+1
* Added `local-time` option to cgitrc•••When `local-time` is set, commit, tag and patch timestamps will be printed in the servers timezone. Also, regardless of the value of `local-time`, these timestamps will now always show the timezone. Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com> Stefan Naewe2008-08-011-0/+3
* Modify default value for a few cgitrc options•••The default max-length used when printing commit messages and repo descriptions can be increased due to the new layout (no sidebar). Also, on the repo summary page I believe it makes sense to only show the ten most recent branches and tags by default, just as it makes sense to show the ten most recent commit messages for the active branch. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-07-271-2/+5
* Be prepared for empty repositories•••Before this patch, cgit would segfault on repositories with no refs. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-07-271-3/+7
* Add a favicon option to cgitrc•••This option is used to specify a shortcut icon on all cgit pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-07-191-0/+2
* Add support for including a footer on all pages•••The new cgitrc option `footer` can be used to include a html-file which replaces the standard 'generated by cgit' message at the bottom of each page. Suggested-by: Peter Danenberg <pcd@wikitex.org> Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-06-261-0/+2
* allow specification of directly linked blobs mimetypes•••Signed-off-by: Michael Krelin <hacker@klever.net> Michael Krelin2008-06-241-0/+2
* cache.c: do not ignore errors from print_slot()•••If print_slot() fails, the client will be served an inferior response. This patch makes sure that such an error will be returned to main(), which in turn will try to inform about the error in the response itself. The error is also printed to the cache_log, i.e. stderr, which will make the error message appear in error_log (atleast when httpd==apache). Noticed-by: Jim Meyering <jim@meyering.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-05-181-2/+2
* Add a pager on the repolist•••This enables a pager on the repolist which restricts the number of entries displayed per page, controlled by the new option `max-repo-count` (default value 50). Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-05-031-0/+3
* Merge branch 'lh/cache'•••* lh/cache: Add page 'ls_cache' Redesign the caching layer Lars Hjemli2008-05-031-129/+37
|\
| * Redesign the caching layer•••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> Lars Hjemli2008-04-281-129/+37
* | Prepare for 'about site' page / add 'root-readme' option to cgitrc•••The new option names a file which will be included on a new page, next to the current 'index' page. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-04-291-0/+2
* | Make it possible for a single cmd to work both with and without a repo•••When cgit_cmd.want_repo was 0, we used to assume that the cmd would never be invoked for a repo. But soon this will become untrue (the 'about' cmd is rapidly approching), so from now on we will initialize any requested repo even if want_repo==0 (and return an error if want_repo==1 but no repo is specified). Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-04-291-1/+10
* | Re-enable 'index-info' and add support for 'root-desc' in cgitrc•••The 'index-info' option got lost when the layout was converted from sidebar to old-fashioned header (noticed by Harley Laue, thanks!), and this commit re-enables it. But there is now also an alternative in the 'root-desc' option; where 'index-info' specifies a file to include, 'root-desc' specifies the text literally. This might be nicer for the one-liner descriptions which these options typically provides. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-04-291-0/+3
|/
* Fix search in repo index even if caching is enabled•••The repository index page needed to include the querystring in the cache filename. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-04-141-1/+3
* Reset ctx.repo to NULL when the config parser is finished•••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> Lars Hjemli2008-04-081-0/+1
* Move cgit_parse_query() from parsing.c to html.c as http_parse_querystring()•••This is a generic http-function. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-04-081-1/+2
* Move function for configfile parsing into configfile.[ch]•••This is a generic function which wanted its own little object file. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-03-281-2/+3
* Add cache.h•••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> Lars Hjemli2008-03-271-0/+1
* Remove global and obsolete cgit_cmd•••This variable was obsoleted by cmd.c. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-03-251-1/+1
* Move cgit_version from shared.c to cgit.c•••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> Lars Hjemli2008-03-241-0/+2
* Move non-generic functions from shared.c to cgit.c•••Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-03-241-3/+153
* Add ui-shared.h•••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> Lars Hjemli2008-03-241-0/+1
* Add command dispatcher•••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> Lars Hjemli2008-03-241-79/+49
* Remove obsolete cacheitem parameter to ui-functions•••This parameter hasn't been used for a very long time... Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-03-241-6/+6
* Add struct cgit_page to cgit_context•••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> Lars Hjemli2008-03-241-17/+33
* Introduce html.h•••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> Lars Hjemli2008-03-181-1/+0
* Improve initialization of git directory•••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> Lars Hjemli2008-02-161-9/+8
* Move cgit_repo into cgit_context•••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> Lars Hjemli2008-02-161-16/+15
* Add all config variables into struct cgit_context•••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> Lars Hjemli2008-02-161-16/+17
* Introduce struct cgit_context•••This struct will hold all the cgit runtime information currently found in a multitude of global variables. The first cleanup removes all querystring-related variables. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-02-161-36/+36
* Handle missing default branch and error out on invalid branch names•••When no branch is specified and the repository does not have a default branch, use the first branch. Also, print sensible errormessages when the repository does not contain any branches and when invalid branchnames are specified. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-01-041-4/+58
* Add plain patch view•••The new view mimics the output from `git format-patch`, making it possible to cherry-pick directly from cgit with something like `curl $url | git am`. Inspired by a patch to `git-apply` by Mike Hommey: http://thread.gmane.org/gmane.comp.version-control.git/67611/focus=67610 Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-12-111-0/+5
* Teach log search about --grep, --author and --committer•••This makes the log searching more explicit, using a dropdown box to specify the commit field to match against. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-10-281-1/+1
* Add support for refs view•••This enables the new urls $repo/refs, $repo/refs/heads and $repo/refs/tags, which can be used to print _all_ branches and/or tags. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-10-271-0/+3
* Add prefix parameter to cgit_print_diff()•••This allows a diff to be restricted to the path prefix specified in the url. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-10-011-1/+1
* cgit_print_snapshot_links: use url to specify snapshot name•••Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-07-231-2/+2
* Merge branch 'master' of git://git.klever.net/patchwork/cgit•••* 'master' of git://git.klever.net/patchwork/cgit: link raw blob from tree file view fix: changed view link to blob in summary. allow selective enabling of snapshots shorten snapshot names to repo basename introduce cgit_repobasename added snapshot filename to the link add plain uncompressed tar snapshort format introduced .tar.bz2 snapshots compress .tar.gz using gzip as a filter added a chk_non_negative check css: adjust vertical-align of commit info th cells add support for snapshot tarballs Conflicts: ui-summary.c Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-07-221-2/+4
|\
| * allow selective enabling of snapshots••• snapshot configuration parameter now can be a space/slash/comma/colon/semicolon/pipe-separated list of snaphot suffixes as listed in ui-snapshot.c Signed-off-by: Michael Krelin <hacker@klever.net> Michael Krelin2007-07-211-1/+2
| * shorten snapshot names to repo basename•••Signed-off-by: Michael Krelin <hacker@klever.net> Michael Krelin2007-07-211-1/+2
| * add support for snapshot tarballs•••- reworked cgit_print_snapshot to use a list of supported archivers and pick one for the suffix supplied - moved printing of snaphot links into ui-snapshot and make it iterate through the said list Michael Krelin2007-07-181-1/+1
* | Add ui-tag.c•••This file implements the tag-command, i.e. printing of annotated tags. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-07-221-0/+3
|/
* make config adjustable via env variable CGIT_CONFIG•••Signed-off-by: Michael Krelin <hacker@klever.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com> Michael Krelin2007-07-031-1/+3
* Merge branch 'lh/menu'•••* lh/menu: Add ofs argument to cgit_log_link and use it in ui-log.c Add trim_end() and use it to remove trailing slashes from repo paths Do not include current path in the "tree" menu link Add setting to enable/disable extra links on index page Change S/L/T to summary/log/tree Change "files" to "tree" Include querystring as part of cached filename for repo summary page Add more menuitems on repo pages Lars Hjemli2007-06-291-4/+6
|\
| * Include querystring as part of cached filename for repo summary page•••When adding support for the h parameter to the summary page (passing current branch between pages), the builtin cache returned basically random results for summary page since the cached filename didn't honour the querystring. This fixes the issue for now, but someday it might be worthwhile to generate 'canonical' filenames in the cache for all pages, i.e. something a bit more clever than just including the querystring. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-06-181-4/+6
* | Add version info from git-describe•••A new script, gen-version.sh, is now invoked from 'make version' to generate the file VERSION. This file contains a version identifier generated by git-describe and is included in the Makefile. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-06-181-3/+0
|/
* Add cgit_diff_link()•••This adds a new function used to generate links to the diff page and uses it everywhere such links appear (expect for single files in the diffstat displayed on the commit page: this is now a link to the tree page). The updated diff-page now expects zero, one or two revision specifiers, in parameters head, id and id2. Id defaults to head unless otherwise specified, while head (as usual) defaults to repo.defbranch. If id2 isn't specified, it defaults to the first parent of id1. The most important change is of course that now all repo pages (summary, log, tree, commit and diff) has support for passing on the current branch and revision, i.e. the road is now open for a 'static' menu with links to all of these pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-06-171-2/+1
* ui-log: honor id=sha1 on querystring•••This teaches ui-log to prefer id=sha1 and fallback to h=rev if no id- parameter is specified. With this change, summary, log, commit and tree views now passes current branch using h parameter and current revision using id parameter. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-06-171-1/+1
* Add cgit_commit_link() + support for id=sha1 to commit view•••This adds a function to generate links to the commit page and extends said page to use id from querystring as primary revision specified (fallback to h). Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-06-171-1/+1
* ui-tree: unify with ui-view, use path to select tree/blob•••This teaches ui-tree to show both trees and blobs, thereby making ui-view superfluous. At the same time, ui-tree is extended to honour the specified path instead of requiering a tree/blob sha1. Lars Hjemli2007-06-161-4/+1