aboutsummaryrefslogtreecommitdiffstats
path: root/cgit.h
AgeCommit message (Collapse)AuthorFilesLines
2008-12-06Add a 'stats' page to each repoLars Hjemli1-0/+3
This new page, which is disabled by default, can be used to print some statistics about the number of commits per period in the repository, where period can be either weeks, months, quarters or years. The function can be activated globally by setting 'enable-stats=1' in cgitrc and disabled for individual repos by setting 'repo.enable-stats=0'. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-10-11Add cgit_query.nohead flagLars Hjemli1-0/+1
This flag is set when no HEAD is specified in the querystring. Currently it has no users, but it will be used by ui-snapshot to invoke a DWIM-mode where the revision is extracted from the snapshot name. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-09-15Teach cgit how to use PATH_INFOLars Hjemli1-0/+1
This commit makes cgit use the cgi variables SCRIPT_NAME and PATH_INFO when virtual-root is unspecified in cgitrc and no url-parameter is specified on the querystring. This has two nice effects: * Virtual urls works out of the box, no more need for rewrite-rules in httpd. * Virtual urls with special querystring characters are handled correctly. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-09-15parsing.c: be prepared for unexpected content in commit/tag objectsLars Hjemli1-1/+1
When parsing commits and tags cgit made too many assumptions about the formatting of said objects. This patch tries to make the code be more prepared to handle 'malformed' objects. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-09-01Merge branch 'lh/plain'Lars Hjemli1-0/+1
* lh/plain: Supply status description to html_status() ui-tree: link to plain view instead of blob view Implement plain view
2008-08-06Implement plain viewLars Hjemli1-0/+1
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>
2008-08-01Add atom-supportLars Hjemli1-0/+1
This enables a page which generates atom feeds for the current branch and path, heavily inspired by the atom-support in gitweb. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-08-01Added `local-time` option to cgitrcStefan Naewe1-1/+2
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>
2008-07-19Add a favicon option to cgitrcLars Hjemli1-0/+1
This option is used to specify a shortcut icon on all cgit pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-06-26Add support for including a footer on all pagesLars Hjemli1-0/+1
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>
2008-06-24allow specification of directly linked blobs mimetypesMichael Krelin1-0/+1
Signed-off-by: Michael Krelin <hacker@klever.net>
2008-05-03Add a pager on the repolistLars Hjemli1-0/+1
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>
2008-05-03Merge branch 'lh/cache'Lars Hjemli1-0/+1
* lh/cache: Add page 'ls_cache' Redesign the caching layer
2008-04-29Prepare for 'about site' page / add 'root-readme' option to cgitrcLars Hjemli1-0/+1
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>
2008-04-29Re-enable 'index-info' and add support for 'root-desc' in cgitrcLars Hjemli1-0/+1
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>
2008-04-28Redesign the caching layerLars Hjemli1-0/+1
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-13Make repository search case insensitiveLars Hjemli1-0/+7
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-08Move cgit_parse_query() from parsing.c to html.c as http_parse_querystring()Lars Hjemli1-2/+0
This is a generic http-function. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-28Move function for configfile parsing into configfile.[ch]Lars Hjemli1-1/+0
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 Hjemli1-14/+0
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 Hjemli1-1/+0
This variable was obsoleted by cmd.c. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Move non-generic functions from shared.c to cgit.cLars Hjemli1-3/+1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Add ui-shared.hLars Hjemli1-32/+0
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 Hjemli1-17/+0
Yet another step towards removing cgit.h. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Refactor snapshot supportLars Hjemli1-0/+8
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 Hjemli1-14/+0
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 Hjemli1-6/+6
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 Hjemli1-5/+13
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-18Introduce html.hLars Hjemli1-14/+1
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-02-16Move cgit_repo into cgit_contextLars Hjemli1-6/+6
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 Hjemli1-35/+37
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>
2008-02-16Introduce struct cgit_contextLars Hjemli1-14/+21
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>
2007-12-11Add plain patch viewLars Hjemli1-0/+2
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>
2007-12-03Add support for automatic and custom clone urlsLars Hjemli1-0/+2
This adds support for two new parameters to cgitrc: clone-prefix and repo.clone-url. If clone-prefix is specified, all repos will get a clone url printed in the sidebar; the url is generated by clone-prefix + repo.url. Additionally, each repo can specify repo.clone-url which will override any such auto-generated url. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-11Add support for "robots" meta-tagLars Hjemli1-0/+1
With this change, cgit will start to generate the "robots" meta-tag, using a default value of "index, nofollow". The default value can be modified with a new cgitrc variable, "robots". Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-06Use utf8::reencode_string from gitLars Hjemli1-0/+1
This replaces the iconv-support in cgit with similar functions already existing in git. Signed-off-by: Lars Hjemli <hjemli@gmai.com>
2007-11-06Add commit->msg_encoding, allocate msg dynamicly.Jonathan Bastien-Filiatrault1-0/+6
2007-11-03Add search parameters to cgit_log_linkLars Hjemli1-1/+2
This makes the [prev] and [next] links work correctly on search results. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-10-30Change the cgit layoutLars Hjemli1-0/+2
This modifies and hopefully improves the layout of all cgit pages: * Remove the header from all pages and replace it with a sidebar; most pages have sufficient width but many needs more height. * Add a dropdown-box to switch between branches, using a one-liner javascript to reload the current page in context of the selected branch. * Include refs found below refs/archives in the sidebar, appearing as a set of menuitems below a 'download' heading. * Include the brand new cgit logo Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-10-30Add config param 'index-info'Lars Hjemli1-0/+1
This parameter will be used to include a html file in the upcoming sidebar on the index page. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-10-28Teach log search about --grep, --author and --committerLars Hjemli1-1/+3
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>
2007-10-28Add html_option() functionLars Hjemli1-0/+1
This is a generic function used to output html "option" tags. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-10-27Add links to the new refs page from summary pageLars Hjemli1-0/+2
If either branches or tags are filtered on the summary page, add a link to refs/heads and/or refs/tags right below the last branch/tag. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-10-27Add support for refs viewLars Hjemli1-0/+2
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>
2007-10-27Make cgit_print_branches()/cgit_print_tags() externalLars Hjemli1-0/+2
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-10-27Add support for config param summary-branchesLars Hjemli1-0/+1
This parameter can be used to specify max number of branches to show on the summary page (if not all branches will be displayed, the "most idle" branches are the ones to be pruned). The default value for this parameter is 0, which disables the pruning. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-10-27Add support for config param summary-tagsLars Hjemli1-0/+1
This parameter can be used to specify max number of tags to show on the summary page. If not specified, all tags are printed. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-10-27Add functions and types for ref listsLars Hjemli1-0/+19
This adds two structs, refinfo and reflist, and functions for building a list of refs. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-10-01Add prefix parameter to cgit_print_diff()Lars Hjemli1-1/+1
This allows a diff to be restricted to the path prefix specified in the url. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-10-01Add prefix parameter to cgit_diff_tree()Lars Hjemli1-1/+1
This paramter can be used to restrict a diff to the specified path prefix. Signed-off-by: Lars Hjemli <hjemli@gmail.com>