about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Change S/L/T to summary/log/treeLars Hjemli2007-06-183-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | In yet another attempt at better usability, the cryptic S/L/T links are changed to show their full name. Suggested-by: Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Change "files" to "tree"Lars Hjemli2007-06-182-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | This renames the menu link and the shortcut on the repo index page from the strange "files" to the more gittish "tree". Suggested-by: Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Include querystring as part of cached filename for repo summary pageLars Hjemli2007-06-181-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Add more menuitems on repo pagesLars Hjemli2007-06-182-16/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In an attempt to get better usability, a set of 'semistatic' menuitems are added to the page header on all pages except the repository index. The menuitems (summary, log, files, commit and diff) honours the current branch and revision. To switch the current branch one can use the branch links on the summary page. The backlink to the repository index page is now available by clicking the static page heading. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Add version info from git-describeLars Hjemli2007-06-187-16/+27
|/ / | | | | | | | | | | | | | | 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>
* | Add cgit_diff_link()Lars Hjemli2007-06-176-69/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | ui-commit: use cgit_commit_link() for parent linksLars Hjemli2007-06-171-6/+4
| | | | | | | | | | | | | | | | This replaces the old cgit_pageurl() function with the brand new cgit_commit_link() function, making parent links in commit view preserve the current branch. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-log: honor id=sha1 on querystringLars Hjemli2007-06-172-1/+4
| | | | | | | | | | | | | | | | | | 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>
* | Add cgit_commit_link() + support for id=sha1 to commit viewLars Hjemli2007-06-177-18/+31
| | | | | | | | | | | | | | | | 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>
* | Add git_log_link() and fix bug in generic repolink functionLars Hjemli2007-06-175-20/+24
| | | | | | | | | | | | | | | | | | | | | | The generic repolink function compared head with cgit_query_head, which almost always would be the same pointer. The test now compares with repo.defbranch, which is the wanted behavour. Bug discovered while adding cgit_log_link(), so this commit also contain that change. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-tree: html/css cleanupLars Hjemli2007-06-172-23/+12
| | | | | | | | | | | | | | | | Various fixes to make html and css more "clean". The only visible change is the link to file/directory log: it is now printed as "L" (for Log) instead of "H" (for History). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-shared: use strcmp() to compare stringsLars Hjemli2007-06-171-2/+2
| | | | | | | | | | | | | | Somehow a couple of pointer comparisions crept into the new repolink() and cgit_tree_link() functions. Fix it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add and use cgit_tree_link()Lars Hjemli2007-06-175-38/+107
| | | | | | | | | | | | | | This creates a new function used to generate links to 'tree' page and uses the function everywhere a link to the 'tree' page is generated. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-tree: make blob viewer generate valid htmlLars Hjemli2007-06-161-1/+0
| | | | | | | | | | | | | | A leftover '</td></tr>' made ui-tree generate invalid html for blob content. Fix it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-tree: unify with ui-view, use path to select tree/blobLars Hjemli2007-06-168-112/+174
| | | | | | | | | | | | 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.
* | cgit.css: make it validateLars Hjemli2007-06-071-8/+7
| | | | | | | | | | | | This fixes a few validation-issues in the css. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-diff: close td/tr/table properlyLars Hjemli2007-06-061-0/+2
| | | | | | | | | | | | | | | | The previous commit fixed the diff-view when two trees where specified on the querystring (sha1/sha2) but made the generated html invalid when only a commit sha1 is specified. This fixes it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-diff: emit table/tr/td at better locationsLars Hjemli2007-06-051-9/+7
|/ | | | | | | | | | This fixes a bug which made the diff-link for each parent of a commit output a diff without correct styles. It also adds an error-message if the head commit specified on the querystring isn't a valid commit object. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Implemented configurable HEAD shortlog on summary page.Ondrej Jirman2007-05-314-1/+16
| | | | | | | | | | This mirrors similiar functionality in gitweb. After clicking on project on projectlist you will immediatelly see quick summary of last N commits on HEAD. [lh: changed from HEAD to cgit_query_head] Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Check for NULL commit buffer in cgit_parse_commit()Ondrej Jirman2007-05-311-0/+3
| | | | | | This can be NULL, so try not to segfault. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add option to disable pager to cgit_print_log().Ondrej Jirman2007-05-313-16/+18
| | | | | | | This is needed for upcomming shortlog on summary page patch. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Handle single-line and empty commit subjectsOndrej Jirman2007-05-311-3/+8
| | | | | | | | | | If commit object ends with \0 after subject line, then info->subject was not set. This commit fixes this and also sets subject to ** empty ** if it would otherwise be empty, so that there is something to click on. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use &amp; instead of & in URLs.Ondrej Jirman2007-05-316-13/+13
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Fixed unexpected tags in html output.Ondrej Jirman2007-05-313-6/+7
| | | | | | At least those that were catched by tidy. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cgit v0.5 v0.5Lars Hjemli2007-05-241-1/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Bad html: it's nice to add alt-attributesLars Hjemli2007-05-241-1/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Bad html: <form> should have an action-attributeLars Hjemli2007-05-241-1/+1
| | | | | | Don't know how the href-attribute got in there... Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Close a <tr> properlyLars Hjemli2007-05-241-1/+1
| | | | | | No reason to generate illegal html. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add repo.readme parameterLars Hjemli2007-05-235-15/+23
| | | | | | | | | | This parameter can be used to specify a repo-specific includefile, which will then be printed on the summary page for the repo. If the parametervalue is a not an absolute path, it is taken to be relative to repo.path. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Remove unused variable from ui-repolist.c:read_agefile()Lars Hjemli2007-05-231-1/+0
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Show time since last change on index pageLars Hjemli2007-05-223-1/+43
| | | | | | | | | | | | | | | | | | | | When creating the index page, an optional file can be scanned per repository to obtain a timestamp for last modification within the repo. If such a file cannot be found, st_mtime for repo.defbranch is used instead. This information is then printed in a new column, "Idle", using the new function cgit_print_age(). The new parameter "repo.agefile" can be used to specify (globally) a relative path to scan (default value is "info/web/last-modified"). The content of the "last-modified" file can be generated by the post-receive hook with a command like this: git-for-each-ref --format="%(committerdate)" --sort=-committerdate \ --count=1 > $GIT_DIR/info/web/last-modified Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use cgit_print_age() on summary and log pagesLars Hjemli2007-05-222-10/+6
| | | | | | Update the pages to show relative dates instead of yyyy-mm-dd hh:mm:ss Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add cgit_print_age() functionLars Hjemli2007-05-225-8/+94
| | | | | | | This function can be used to print relative dates, just as in gitweb. Next step will be to actually use the new function. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* css: make column headings boldLars Hjemli2007-05-211-1/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Make frontpage friendlierLars Hjemli2007-05-212-15/+43
| | | | | | | This is an attempt to make the index page more usable by changing how repo groups and repo links are displayed. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'repogroups'Lars Hjemli2007-05-204-0/+21
|\ | | | | | | | | | | | | * repogroups: Adjust apperance of repogroup headers Don't highlight repogroup headings Teach cgit how to group repositories by category
| * Adjust apperance of repogroup headersLars Hjemli2007-05-201-1/+1
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Don't highlight repogroup headingsLars Hjemli2007-05-181-1/+1
| | | | | | | | | | | | Specify class='nohover' to avoid highlighting this row. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Teach cgit how to group repositories by categoryLars Hjemli2007-05-184-0/+21
| | | | | | | | | | | | | | | | | | The new parameter 'repo.group' is used to set the repository group for the following repositores. Whenever this parameter changes value, a subheading is generated in the index page (printing the current value of repo.group). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'virtual-url'Lars Hjemli2007-05-206-51/+139
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | * virtual-url: Don't be fooled by trailing '/' in url-parameter cache_safe_filename() needs more buffers Enable url=value querystring parameter Add lookup-function for valid repo commands Move cgit_get_repoinfo into shared.c
| * | Don't be fooled by trailing '/' in url-parameterLars Hjemli2007-05-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | cgit_parse_url() didn't check if the path-part of urls contained a real path or just a trailing slash. This made the log-page die since the path filtering supplied an invalid path argument. This fixes it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | cache_safe_filename() needs more buffersLars Hjemli2007-05-181-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | The single static buffer makes it impossible to use the result of two different calls to this function simultaneously. Fix it by using 4 buffers. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Enable url=value querystring parameterLars Hjemli2007-05-186-40/+98
| | | | | | | | | | | | | | | | | | | | | This makes is possible to use repo-urls like '/pub/scm/git/git.git' and even add path specifications, like '/pub/scm/git/git.git/log/documentation'. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Add lookup-function for valid repo commandsLars Hjemli2007-05-182-0/+24
| | | | | | | | | | | | | | | | | | This will be usefull when parsing url arguments. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Move cgit_get_repoinfo into shared.cLars Hjemli2007-05-183-14/+14
| |/ | | | | | | | | | | This function will be usefull when parsing url arguments. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'index-header'Lars Hjemli2007-05-204-0/+24
|\ \ | | | | | | | | | | | | | | | * index-header: Teach cgit howto include an external file on index page. Add html_include()
| * | Teach cgit howto include an external file on index page.Lars Hjemli2007-05-193-0/+9
| | | | | | | | | | | | | | | | | | | | | The new parameter index-header can be used to name an external file which will be included verbatim at the top of the index page. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Add html_include()Lars Hjemli2007-05-182-0/+15
| |/ | | | | | | | | | | | | This is a function used to include external htmlfiles in cgit- generated pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* / Use git-1.5.2Lars Hjemli2007-05-202-5/+3
|/ | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Remove unused extern declarations from cgit.hLars Hjemli2007-05-181-4/+0
| | | | | | Some unused declarations from the early days of cgit are removed. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add knobs to enable/disable files/lines changed in log viewLars Hjemli2007-05-184-13/+48
| | | | | | | | | | | These columns can cause lots of IO on the server, so add settings to explicitly enable them. Also, add per repo settings to optionally disable the columns if sitewide enabled. While at it, do not allow repo.snapshot to enable snapshots if the global setting is disabled. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Restrict length of repo description on repolist pageLars Hjemli2007-05-164-1/+9
| | | | | | | | | | If any repo has a very long description, all repos suffer since the repo-links in the right-most column gets pushed out of sight. Fix it by introducing max-repodesc-length parameter in cgitrc, and default to 60 chars. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Don't die when diffing trees with subprojectsLars Hjemli2007-05-161-19/+43
| | | | | | | | | The subprojects needs special handling, since they refer to objects which normally won't exist in the refering repository. Fix some extended header bugs and missing features while at it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Do not wrap filemode column in diffstat tableLars Hjemli2007-05-161-0/+4
| | | | | | | The diffstat looks rather ugly when the filemode is wrapped to one char per line, so lets force it to not wrap. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add C D L and T links to index pageLars Hjemli2007-05-161-1/+15
| | | | | | | | | These are of course Commit, Diff, Log and Tree pages, all accessed w.o. specifying refname or sha1. Sadly, the layout is neither pretty nor accessible. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Make git_pageurl handle NULL querystringsLars Hjemli2007-05-161-2/+6
| | | | | | This is suddenly useful after the repo.defbranch-related changes. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for tree listing via h parameterLars Hjemli2007-05-161-0/+10
| | | | | | This makes the tree page benefit from repo.defbranch. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add link to commitdiff below diffstatLars Hjemli2007-05-162-2/+10
| | | | | | | This link is a lot easier to locate than the links to the right of the parent entries. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for commitdiff via h parameterLars Hjemli2007-05-163-7/+21
| | | | | | | | | The commitdiff will be generated against the first parent, and the diff page also gets the benefit of repo.defbranch. Cleaned up some bad whitespace in cgit.h while at it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Change commit-view to expect h parameter, not idLars Hjemli2007-05-164-10/+13
| | | | | | The change makes the commit-page benefit from repo.defbranch. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Enable default value for head parameterLars Hjemli2007-05-163-14/+7
| | | | | | | | | | | | | Pages which expect head to be specified in the querystring can now be given a default value, configurable per repository (via repo.defbranch, which defaults to "master"). Currently, only the log page actually works without parameters, but the defbranch is bound to be exploited. This also removes some dead code from shared.c Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Restrict deep nesting of configfilesLars Hjemli2007-05-151-4/+6
| | | | | | | | | | | | There is no point in restricting the number of included config- files, but there is a point in restricting the nestinglevel of configfiles: to avoid recursive inclusions. This is easily achieved by decrementing the static nesting-variable upon exit from cgit_read_config(). Also fix some whitespace breakage. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Include cgit.conf in MakefileLars Hjemli2007-05-151-0/+5
| | | | | | | | | This allows persistent overrides of Makefile settings without touching the Makefile. Suggested in a patch by Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-diff: show /dev/null as filename for add/deleteLars Hjemli2007-05-151-1/+4
| | | | | | | The diff headers showed an invalid filename when a patch created or deleted a file. Fix it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use tables and css to create the diffstat graph, fix scalingLars Hjemli2007-05-155-15/+27
| | | | | | | | There was no need to use image-files for the graphs, so lets drop them. At the same time, fix scaling of the graphs so that the full width is used only if atleast 100 LOC are changed in one of the files. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Do not alter incoming sha1 when handling the download refs.Lars Hjemli2007-05-151-2/+5
| | | | | | | The code used to overwrite the const sha1 parameter just to avoid declaring an extra variable. Fix it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Don't hardcode urls when SCRIPT_NAME is availableLars Hjemli2007-05-155-4/+9
| | | | | | | Also, let the makefile define the name of the installed cgi and use that definition as a default value for cgit_script_name variable. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared.c: fix whitespace breakageLars Hjemli2007-05-151-6/+5
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Show tag heading even if first tag is of the lightweight kindLars Hjemli2007-05-151-13/+19
| | | | | | | | | The tag printing code waited for valid tags before printing the table heading, but forgot to count unannotated tags. This fixes it. Noticed by Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Specify static storage class for file-local declarationsLars Hjemli2007-05-152-11/+11
| | | | | | | | Also fix some whitespace issues while at it. Noticed by Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add include-parameter to config filesLars Hjemli2007-05-143-8/+15
| | | | | | | | | This parameter can be used to include another config-file, like a standalone repository listing. Suggested in a patch by Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Let makefile override the configfile locationLars Hjemli2007-05-142-5/+8
| | | | | | | | | | Pass CGIT_CONFIG from makefile during build, to enable stuff like make CGIT_CONFIG=/var/cgit/cgit.conf Noticed by Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cgit.c: fix whitespace breakageLars Hjemli2007-05-141-7/+7
|
* cgit.css: try to make diffs look a little bit nicerLars Hjemli2007-05-142-13/+32
| | | | | | This makes the diffview look more like 'git-diff' in a terminal. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cgit.css: try do make diffstat a little bit nicerLars Hjemli2007-05-141-4/+3
| | | | | | | I'm still no webdesigner, but this seems to be a more pleasant "visual experience". Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add log filtering by path and link to it from tree viewLars Hjemli2007-05-146-13/+37
| | | | | | | This enables path-filtering in log-view, and adds a link per entry in tree-view to show the log for each file/directory. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cgit v0.4 v0.4Lars Hjemli2007-05-131-1/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add commitdiff between commit and each of it's parentLars Hjemli2007-05-135-10/+63
| | | | | | | | | | A link is added next to each parent of a commit, leading to the new diff-functionality in ui-diff.c. Also added support for a path-parameter to filelevel diffs accessed via the diffstat. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add graphical diffstat to commit viewLars Hjemli2007-05-135-33/+130
| | | | | | | | The diffstat is calculated against the leftmost parent of the commit. This gives nice information for "normal" merges while octopus merges are less than optimal, so the diffstat isn't calculated for those merges. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add max-commit-count parameter to cgitrcLars Hjemli2007-05-134-2/+10
| | | | | | | | | This enabled customizing number of commits shown per page in log view. It also changes the default from 100 to 50, mainly due to the more cpu intensive log pages (number of files/lines changed) but also since 100 log messages requires excessive scrolling. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Show number of changed lines in log viewLars Hjemli2007-05-131-1/+11
| | | | | | | Use the new file-diff interface to calculate number of changed lines per commit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Simplify ui-diff.c using the new file-level diff interfaceLars Hjemli2007-05-131-86/+2
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add standard interface for file diff functionsLars Hjemli2007-05-132-0/+86
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Show number of changed files in log viewLars Hjemli2007-05-131-2/+15
| | | | | | | | | This uses the new tree-diff functions to calculate number of files changed per commit. Also fix some whitespace issues. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use standard tree-diff function when showing diffstat for single commitLars Hjemli2007-05-131-51/+15
| | | | | | | | | Remove unneeded code from ui-commit.c and replace with call to standard diff-functions. Also fix some whitespace issues. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add shared diff-handling functionsLars Hjemli2007-05-132-2/+50
| | | | | | This adds a standard interface for tree diffing. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* css: fix bad rendering in Internet ExplorerLars Hjemli2007-05-121-2/+7
| | | | | | | The layout-tables used border-collapse:separate, which maked all pages look really bad in IE. Fix it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add links to enable downloading of tagged blobsLars Hjemli2007-05-112-9/+85
| | | | | | | | | | | | All tags below refs/archives are shown on the repo summary page as download links. The links referes to the tagged objects, using the tag name as filename for download. This can be used to add shortcuts for release tarballs, documentation and other blobs stored in the object database, especially blobs that are not reachable during cloning. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Makefile: add support for building w.o. preinstalled gitLars Hjemli2007-05-111-1/+13
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Tag release v0.3 v0.3Lars Hjemli2007-05-111-1/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Update README with submodule build infoLars Hjemli2007-05-111-13/+39
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add submodule links in tree listingLars Hjemli2007-05-116-12/+27
| | | | | | | | | When a submodule occurs in a tree, generate a link to show the module/commit. The link is specified as a sprintf string in /etc/cgitrc, using parameters 'module-link' and 'repo.module-link'. This should probably be extended with repo.module-link.$path. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add submodules.sh and use it during buildsLars Hjemli2007-05-113-13/+222
| | | | | | | | | | | | This adds a shell script which can be be used to initialize, list and update submodules in a git repository. It reads the file .gitmodules to find a mapping between submodule path and repository url for the initial clone of all submodules. The script is used during cgit builds to enable automatic download and checkout of the git git repository. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Added git as a submoduleLars Hjemli2007-05-112-1/+1
| | | | | | | | This commit adds the subdirectory 'git' as a submodule containing the git git repository, but doesn't add support for automatically cloning the submodule. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for downloading single blobsLars Hjemli2007-05-095-3/+47
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-view: show pathname if specified in querystringLars Hjemli2007-05-083-5/+10
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Update to libgit 1.5.2-rc2Lars Hjemli2007-05-089-837/+50
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Layout updateLars Hjemli2007-02-219-32/+127
|
* Make snapshot feature configurableLars Hjemli2007-02-085-6/+22
| | | | | | | | | | Snapshots can now be enabled/disabled by default for all repositories in cgitrc with param "snapshots". Additionally, any repo can override the default setting with param "repo.snapshots". By default, no snapshotting is enabled. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for snapshotsLars Hjemli2007-02-088-8/+153
| | | | | | | | Make a link from the commit viewer to a snapshot of the corresponding tree. Currently only zip-format is supported. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cgit v0.2 v0.2Lars Hjemli2007-02-051-1/+1
| | | | | | | | | Main changes since v0.1: -list tags in repo summary -allow search in log-view -read repository paths from cgitrc Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for prefix and gitsrc arguments to 'make'Lars Hjemli2007-02-052-15/+37
| | | | | | | | This should improve the installation a little, especially since the new options are mentioned in the README. Also, add a make-rule to build the git binaries if necessary + a dependency between cgit and libgit.a. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Update cgitrc templateLars Hjemli2007-02-041-21/+32
| | | | | | Make the descriptions more helpfull. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for lightweight tagsLars Hjemli2007-02-042-19/+37
| | | | | | | There is nothing bad about a tag that has no tag-object, but the old code didn't handle such tags correctly. Fix it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Read repo-info from /etc/cgitrcLars Hjemli2007-02-045-55/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes cgit read all repo-info from the configfile, instead of scanning for possible git-dirs below a common root path. This is primarily done to get better security (separate physical path from logical repo-name). In /etc/cgitrc each repo is registered with the following keys: repo.url repo.name repo.path repo.desc repo.owner Note: *Required keys are repo.url and repo.path, all others are optional *Each occurrence of repo.url starts a new repository registration *Default value for repo.name is taken from repo.url *The value of repo.url cannot contain characters with special meaning for urls (i.e. one of /?%&), while repo.name can contain anything. Example: repo.url=cgit-pub repo.name=cgit/public repo.path=/pub/git/cgit repo.desc=My public cgit repo repo.owner=Lars Hjemli repo.url=cgit-priv repo.name=cgit/private repo.path=/home/larsh/src/cgit/.git repo.desc=My private cgit repo repo.owner=Lars Hjemli Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Do not die if tag has no messageLars Hjemli2007-02-041-2/+2
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Fix search for non-virtual urlsLars Hjemli2007-02-031-0/+6
| | | | | | | | When cgit don't use virtual urls, the current repo and page url parameters must be included in the search form as hidden input fields. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Update README with install/config informationLars Hjemli2007-01-281-24/+28
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add template for /etc/cgitrcLars Hjemli2007-01-281-0/+63
| | | | | | This doubles as documentation of the parameteres :) Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add parameter to adjust max message length in log listingsLars Hjemli2007-01-284-2/+8
| | | | | | | | | The parameter "max-message-length" can be specified in cgitrc, default value is 60. This affects the log message shown in repo summary and shortlog. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Set explicit font sizeLars Hjemli2007-01-281-1/+1
| | | | | | This might be bad style, but cgit really needed smaller fonts. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Change global document layoutLars Hjemli2007-01-282-12/+16
| | | | | | Use a document-wide table for the main layout Signed-off-by: Lars Hjemli <larsh@slaptop.hjemli.net>
* Unified install pathLars Hjemli2007-01-281-4/+3
| | | | | | Install all files into single directory Signed-off-by: Lars Hjemli <larsh@slaptop.hjemli.net>
* Cleanup table listingsLars Hjemli2007-01-286-13/+9
| | | | | | Make the output for <table class='list'> a bit nicer Signed-off-by: Lars Hjemli <larsh@slaptop.hjemli.net>
* Enable building with debuginfoLars Hjemli2007-01-171-0/+4
| | | | | | Add -g to CFLAGS when running make with DEBUG=1 Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Extend repo summary with tag listLars Hjemli2007-01-172-10/+72
| | | | | | Show all tags in the repo below the branch list. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add function cgit_parse_tag()Lars Hjemli2007-01-172-0/+55
| | | | | | Teach cgit how to extract author info from a tag. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add some more decls from git (cache.h, tag.h)Lars Hjemli2007-01-171-0/+34
| | | | | | This is in preparation for extended tag support in cgit Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Handle empty/malformed commit messagesLars Hjemli2007-01-161-6/+13
| | | | | | | An empty commit message would trigger a segfault in the current cgit_parse_commit(). Also, make sure that all char-pointers are properly initialized.
* WIP: add paths/backlinks to tree/blobviewLars Hjemli2007-01-124-5/+15
|
* Remove troublesome chars from cachefile namesLars Hjemli2007-01-123-1/+18
| | | | | | | Add a funtion cache_safe_filename() which replaces possibly bad filename characters with '_'. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move cache_prepare() to cgitLars Hjemli2007-01-123-25/+23
| | | | | | This moves some cgit-specific stuff away from cache.c Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use long instead of int when converting from TTL to secondsLars Hjemli2007-01-051-1/+1
| | | | | | Just to be really, really sure about embarrasing overflow settings Signed-off-by: Lars Hjemli <larsh@hal-2004.(none)>
* Use TTL-settings even in nocache modeLars Hjemli2007-01-051-0/+1
| | | | | | | In nocace mode an uninitialized ttl-setting was used to generate http-Expires header. Fix it. Signed-off-by: Lars Hjemli <larsh@hal-2004.(none)>
* Handle %xx encoding in querystringLars Hjemli2007-01-043-0/+36
| | | | | | | Convert valid %xx expressions in querystring to ascii, ignore invalid expressions (i.e. eat the three characters %xx). Signed-off-by: Lars Hjemli <larsh@hal-2004.(none)>
* Handle '+' in querystringLars Hjemli2006-12-281-0/+2
| | | | | | Translate '+' to ' ' in querystring parser (still doesn't handle %xx) Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add basic log filteringLars Hjemli2006-12-284-7/+83
| | | | | | This enables case-insensitive grep on logentris using the new search box Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add generic support for search box in page headerLars Hjemli2006-12-287-5/+51
| | | | | | | This adds the ability to show a search box in any pageheader with correct href and hidden form data, but does not enable the box on any pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Test for NULL-pointers in html_txt() and friendsLars Hjemli2006-12-281-4/+3
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Minor style fixesLars Hjemli2006-12-222-9/+12
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add missing diff-link in ui-commit.cLars Hjemli2006-12-221-2/+3
| | | | | | | | Gaah. This should have been a part of 36aba00273e7af1b94bf8c5dd5068709d983d01e Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Only show first 80 characters of commit subject in log and summaryLars Hjemli2006-12-225-5/+34
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add missing ttl-options in configLars Hjemli2006-12-221-0/+8
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cgit 0.1 v0.1Lars Hjemli2006-12-211-1/+1
| | | | | | | | With a working diff, it really has all the basics. Next steps will be to make it more usable and less ugly :) Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Let make know that ui-diff.c depends on xdiff.hLars Hjemli2006-12-211-0/+2
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add basic diff viewLars Hjemli2006-12-207-1/+270
| | | | | | Finally, xdiff is used to show per-file diffs via commit view. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use html_filemode in ui-tree.cLars Hjemli2006-12-172-6/+9
| | | | | | No reason to show "100644" when we can show "-rw-r--r--" Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Don't show new and old filemode for added/removed filesLars Hjemli2006-12-171-2/+9
| | | | | | | | It gives us no extra info whatsoever to show "----------" for either new or old mode, it's just noise (especially since we now show the "old" filemode for deleted files) Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Show list of modified files in ui-commit.cLars Hjemli2006-12-175-8/+281
| | | | | | | | Compare current commit with 1.parent, and for each affected file display current filemode, old filemode if changed, current filename and source filename if it was a copy/rename. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Reformat code to avoid excessive line lengthsLars Hjemli2006-12-163-11/+18
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add cgit_free_commitinfo() and use where neededLars Hjemli2006-12-165-8/+15
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Simplify ui-commit.cLars Hjemli2006-12-161-16/+1
| | | | | | | Replace the call to lookup_commit() with a call to lookup_commit_reference, since it handles reading and parsing of the commit object internally. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Show emails and timestamps in ui-commit.cLars Hjemli2006-12-161-2/+8
| | | | | | | Use the extra info found in commitinfo struct when generating commit view. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Teach commit parser about author/committer email + timestampLars Hjemli2006-12-162-2/+14
| | | | | | | | | | | We want all four of these when showing a commit, so save them in the commitinfo struct. Btw: There's probably no good reason to save committer timestamp since it's already available in commit->date. But it doesn't hurt us either, and it makes the parser look more complete, so we just do it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Allow relative paths for cgit_cache_rootLars Hjemli2006-12-162-0/+8
| | | | | | | | | | Make sure we chdir(2) back to the original getcwd(2) when a page has been generated. Also, if the cgit_cache_root do not exist, try to create it. This is a feature intended to ease testing/debugging. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add cache-root option to /cgit/rcLars Hjemli2006-12-161-0/+2
| | | | | | | | Somehow, this option was forgotten when parsing the configfile. Add it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add argument parsing + switch for uncached operationLars Hjemli2006-12-163-3/+51
| | | | | | | | | | | | | | | | | | | | | | | | This adds support for the following options to cgit: --root=<path> --cache=<path> --nocache --query=<querystring> --repo=<reponame> --page=<pagename> --head=<branchname> --sha1=<sha1> --ofs=<number> On startup, /etc/cgitrc is parsed, followed by argument parsing and finally querystring parsing. If --nocache is specified (or set in /etc/gitrc), caching is disabled and cgit instead generates pages to stdout. The combined effect of these two changes makes testing/debugging a lot less painfull. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add head comment to shared.cLars Hjemli2006-12-161-0/+8
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add head comment to ui-commit.cLars Hjemli2006-12-161-0/+8
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* gitweb ripoff: set tr:hover to highligt current rowLars Hjemli2006-12-161-3/+7
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Make repo header a link to summary pageLars Hjemli2006-12-162-1/+12
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move cgit_print_date into ui-shared, reuse in ui-summaryLars Hjemli2006-12-164-20/+24
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add ui-commit.c + misc ui cleanupsLars Hjemli2006-12-169-19/+140
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add a common commit parserLars Hjemli2006-12-153-63/+75
| | | | | | Make a better commit parser, replacing the ugly one in ui-log.c Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add simple pager to log pageLars Hjemli2006-12-144-6/+37
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add separate makefile-rule to clear current cacheLars Hjemli2006-12-131-2/+4
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Remove implementation details from READMELars Hjemli2006-12-131-44/+25
| | | | | | Let README describe the "bigger picture" instead. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Small layout adjustments to summary and blob viewLars Hjemli2006-12-133-5/+13
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add display of tree content w/ui-tree.cLars Hjemli2006-12-139-8/+113
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cache_lock: do xstrdup/free on lockfileLars Hjemli2006-12-121-1/+2
| | | | | | | | | | | | | | | Since fmt() uses 8 alternating static buffers, and cache_lock might call cache_create_dirs() multiple times, which in turn might call fmt() twice, after four iterations lockfile would be overwritten by a cachedirectory path. In worst case, this could cause the cachedirectory to be unlinked and replaced by a cachefile. Fix: use xstrdup() on the result from fmt() before assigning to lockfile, and call free(lockfile) before exit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Don't truncate valid cachefilesLars Hjemli2006-12-113-4/+16
| | | | | | | | | | | | | | An embarrassing thinko in cgit_check_cache() would truncate valid cachefiles in the following situation: 1) process A notices a missing/expired cachefile 2) process B gets scheduled, locks, fills and unlocks the cachefile 3) process A gets scheduled, locks the cachefile, notices that the cachefile now exist/is not expired anymore, and continues to overwrite it with an empty lockfile. Thanks to Linus for noticing (again). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move global variables + callback functions into shared.cLars Hjemli2006-12-114-82/+86
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move functions for generic object output into ui-view.cLars Hjemli2006-12-114-34/+43
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move log-functions into ui-log.cLars Hjemli2006-12-115-111/+121
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move repo summary functions into ui-summary.cLars Hjemli2006-12-114-47/+59
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move functions for repolist output into ui-repolist.cLars Hjemli2006-12-115-70/+90
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move common output-functions into ui-shared.cLars Hjemli2006-12-114-82/+99
| | | | | | While at it, replace the cgit_[lib_]error constants with a proper function Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Rename config.c to parsing.c + move cgit_parse_query from cgit.c to parsing.cLars Hjemli2006-12-114-28/+29
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Avoid infinite loops in caching layerLars Hjemli2006-12-113-14/+31
| | | | | | | | | | | Add a global variable, cgit_max_lock_attemps, to avoid the possibility of infinite loops when failing to acquire a lockfile. This could happen on broken setups or under crazy server load. Incidentally, this also fixes a lurking bug in cache_lock() where an uninitialized returnvalue was used. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Let 'make install' clear all cachefilesLars Hjemli2006-12-111-0/+2
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Fix cache algorithm loopholeLars Hjemli2006-12-113-11/+16
| | | | | | | | This closes the door for unneccessary calls to cgit_fill_cache(). Noticed by Linus. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add version identifier in generated filesLars Hjemli2006-12-102-9/+14
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add license file and copyright noticesLars Hjemli2006-12-105-0/+372
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add caching infrastructureLars Hjemli2006-12-109-28/+353
| | | | | | | | | | | | | | | | | | | | | | This enables internal caching of page output. Page requests are split into four groups: 1) repo listing (front page) 2) repo summary 3) repo pages w/symbolic references in query string 4) repo pages w/constant sha1's in query string Each group has a TTL specified in minutes. When a page is requested, a cached filename is stat(2)'ed and st_mtime is compared to time(2). If TTL has expired (or the file didn't exist), the cached file is regenerated. When generating a cached file, locking is used to avoid parallell processing of the request. If multiple processes tries to aquire the same lock, the ones who fail to get the lock serves the (expired) cached file. If the cached file don't exist, the process instead calls sched_yield(2) before restarting the request processing. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add .gitignoreLars Hjemli2006-12-091-0/+3
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Replace useless make rules with generic $(OBJECTS) dependencyLars Hjemli2006-12-091-5/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Import cgit prototype from git treeLars Hjemli2006-12-097-0/+1090
This enables basic cgit functionality, using libgit.a and xdiff/lib.a from git + a custom "git.h" + openssl for sha1 routines. Signed-off-by: Lars Hjemli <hjemli@gmail.com>