summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Use GIT-1.6.0.1Lars Hjemli2008-09-021-0/+0
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-plain: handle subdirectoriesLars Hjemli2008-09-021-4/+1
| | | | | | | | | | The callback from read_tree_recursive just needs to check the type of each tree entry; if it's a dir we want to continue scanning, if it's a regular file we'll assume it's the one we requested. And while at it, remove some stray fprintfs. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use GIT-1.6.0Lars Hjemli2008-09-011-0/+0
|
* Merge branch 'lh/plain'Lars Hjemli2008-09-0112-13/+125
|\ | | | | | | | | | | | | * lh/plain: Supply status description to html_status() ui-tree: link to plain view instead of blob view Implement plain view
| * Supply status description to html_status()Lars Hjemli2008-08-064-14/+12
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * ui-tree: link to plain view instead of blob viewLars Hjemli2008-08-063-4/+12
| | | | | | | | | | | | | | | | | | | | | | The urls for plain view makes it possible to download blobs without knowing their SHA1, but the function needs to be promoted and the link from tree view seems like a perfect fit. PS: Although hidden, the blob view still is nice for direct blob access so there's no point in removing it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Implement plain viewLars Hjemli2008-08-069-0/+106
| | | | | | | | | | | | | | 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>
* | Merge branch 'lh/clone'Lars Hjemli2008-09-016-0/+140
|\| | | | | | | | | | | | | | | * lh/clone: Add support for cloning over http Conflicts: cmd.c
| * Add support for cloning over httpLars Hjemli2008-08-066-0/+140
| | | | | | | | | | | | | | This patch implements basic support for cloning over http, based on the work on git-http-backend by Shawn O. Pearce. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | cache.c: use %zd for off_t argumentLars Hjemli2008-09-011-1/+1
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail>
* | Use GIT-1.6.0.rc1Lars Hjemli2008-08-062-1/+1
| | | | | | | | | | | | | | Now that rc1 is released as a tarball `make get-git` should start working again. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Makefile: Git dependency, take 3Lars Hjemli2008-08-061-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | In commit a1266edfe the build instructions for the git libs where moved to their real targets, which in turn depended on the phony target `git`. But since `git` is an actual directory in cgit the git libs wouldn't be recompiled when needed. So with this patch (third time lucky), cgit is declared to depend on the really phony target `libgit` and the build instructions for `libgit` is to unconditionally rebuild git/libgit.a and git/xdiff/lib.a. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'lh/atom'Lars Hjemli2008-08-067-0/+168
|\ \
| * | Add atom-supportLars Hjemli2008-08-017-0/+168
| |/ | | | | | | | | | | | | 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>
* / cgitrc: explain new local-time optionStefan Naewe2008-08-051-0/+2
|/ | | | | Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Added `local-time` option to cgitrcStefan Naewe2008-08-017-10/+17
| | | | | | | | | 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>
* Makefile: another take on git dependency rulesLars Hjemli2008-08-011-7/+5
| | | | | | | | | | | | | | | When building cgit we depend on xdiff/lib.a and libgit.a in the git directory, but the previous attempt on describing this dependency failed since the build instructions for the libs was placed under the phony `git` target. This patch fixes the issue by moving the build instructions to their real targets. It also makes it clear that only the `cgit` target depends on the git binaries (since they're only used during linking). And while at it, the patch also cleans up the list of phony targets. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Modify default value for a few cgitrc optionsLars Hjemli2008-07-271-2/+5
| | | | | | | | | | | 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>
* Be prepared for empty repositoriesLars Hjemli2008-07-272-4/+9
| | | | | | Before this patch, cgit would segfault on repositories with no refs. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared: show repo owner along with descriptionLars Hjemli2008-07-271-3/+3
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-summary: show clone urlsLars Hjemli2008-07-271-0/+41
| | | | | | | | If either repo.clone-url or clone-prefix is specified in cgitrc, all space-separated values in the config option is printed as a possible clone url on the repo summary page. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Makefile: remove the `distclean` and `emptycache` targetsLars Hjemli2008-07-221-7/+0
| | | | | | The `distclean` was hardly useful while the `emptycache` was actively harmful. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Makefile: do not touch the git objects with `make clean`Lars Hjemli2008-07-221-1/+0
| | | | | | | I've been avoiding `make clean` for a long time due to its eagerness to kill all the git objectfiles. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Makefile: fix git dependency rulesLars Hjemli2008-07-221-5/+3
| | | | | | | | The objectfiles depends unconditionally on some specific git binaries while those git binaries depends on the phony `git` target and this patch seems to get these dependencies spelled out correctly. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* tests/Makefile: not everyone has `.` in $PATHLars Hjemli2008-07-221-1/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Adjust to new calling convention for read_tree_recursive()Lars Hjemli2008-07-212-7/+10
| | | | | | | | In GIT-1.6.0, read_tree_recursive takes an extra void pointer for callback data. We might want to use this to avoid some global variables, but for now lets just make sure that we can still compile. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use GIT-1.6.0-rc0Lars Hjemli2008-07-211-0/+0
|
* Add a favicon option to cgitrcLars Hjemli2008-07-194-0/+10
| | | | | | This option is used to specify a shortcut icon on all cgit pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for including a footer on all pagesLars Hjemli2008-06-263-4/+13
| | | | | | | | | 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>
* Merge branch 'master' of git://git.klever.net/patchwork/cgitLars Hjemli2008-06-265-7/+39
|\ | | | | | | | | | | * 'master' of git://git.klever.net/patchwork/cgit: allow specification of directly linked blobs mimetypes allow blob extract blobs by head/path combination
| * allow specification of directly linked blobs mimetypesMichael Krelin2008-06-243-1/+4
| | | | | | | | Signed-off-by: Michael Krelin <hacker@klever.net>
| * allow blob extract blobs by head/path combinationMichael Krelin2008-06-243-6/+35
| | | | | | | | | | | | | | If blob is invoked with no id=, it tries to look up h= and search for path= in there. Once found, proceed as normal, otherwise, fail as normal. Signed-off-by: Michael Krelin <hacker@klever.net>
* | Use GIT-1.5.6Lars Hjemli2008-06-252-1/+1
|/
* Added root-desc to default configuration.Harley Laue2008-05-211-0/+4
| | | | | Signed-off-by: Harley Laue <losinggeneration@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-tree.c: avoid peeking at GITLINK objectsLars Hjemli2008-05-201-6/+8
| | | | | | | | | When an object in the tree has GITLINK mode-bits we don't need to get any more info about that particular object (and trying to get more info about it will usually generate an annoying warning on stderr since the object typically doesn't exist in the repo anyways). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cache.c: fix error checking in print_slot()Lars Hjemli2008-05-201-4/+7
| | | | | | | | The change to print_slot() in cdc6b2f8e7a8d43dcfe0475a9d3498333ea686b8 made the function return correct errno for read errors while ignoring write errors, which is not what was intended. This patch tries to rectify things. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cache.c: do not ignore errors from print_slot()Lars Hjemli2008-05-182-5/+15
| | | | | | | | | | | | 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>
* cache.c: use xread()/xwrite() from libgitLars Hjemli2008-05-181-6/+6
| | | | | | | | | | | These functions handles EINTR/EAGAIN errors during read/write operations, which is something cache.c didn't. While at it, fix a bug in print_slot() where errors during reading from the cache slot might go by unnoticed. Noticed-by: Jim Meyering <jim@meyering.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cache.c: make all io-related functions return errno on errorLars Hjemli2008-05-181-9/+24
| | | | | | | | We'll need proper return-values from these functions to make the cache behave correctly (which includes giving proper error messages). Noticed-by: Jim Meyering <jim@meyering.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cache.c: read(2) returns -1 on error, not 0Lars Hjemli2008-05-181-1/+1
| | | | | Noticed-by: Jim Meyering <jim@meyering.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use GIT-1.5.5.1Lars Hjemli2008-05-182-1/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Include commit-id in link from diff-statLars Hjemli2008-05-182-1/+2
| | | | | | | This fixes a regression created by fe1230dece81450004d02fa8a470f8dab8f7fdd9, and modifies a test to avoid future regressions. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-commit: handle root commitsLars Hjemli2008-05-182-3/+22
| | | | | | | | | Both cgit_print_diff() and cgit_diff_tree() handles root commits nicely, but cgit_print_commit() forgot to check the case of 0 parents. This fixes it, and adds tests to avoid future regressions. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add link to index page from repo header, remove page nameLars Hjemli2008-05-042-2/+5
| | | | | | | | | | | This makes it more obvious how to get back to the index, especially when the config option `logo-link` is used. And the page name displayed in the header provided no extra information. It only consumed space and deserved to die. While at it, make sure that the different parts of the header doesn't wrap when horizontal space is limited. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add footer with page creation time and cgit version on all pagesLars Hjemli2008-05-032-0/+9
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add a pager on the repolistLars Hjemli2008-05-034-1/+32
| | | | | | | | 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>
* Add cgit_index_link() function with support for offsetLars Hjemli2008-05-032-5/+19
| | | | | | This function will be used to build a pager in ui-repolist. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'lh/cache'Lars Hjemli2008-05-037-216/+506
|\ | | | | | | | | | | * lh/cache: Add page 'ls_cache' Redesign the caching layer
| * Add page 'ls_cache'Lars Hjemli2008-04-283-5/+87
| | | | | | | | | | | | | | | | This new page will list all entries found in the current cache, which is useful when reviewing the new cache implementation. There are no links to the new page, but it's reachable by adding 'p=ls_cache' to any cgit url. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Redesign the caching layerLars Hjemli2008-04-286-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>