aboutsummaryrefslogtreecommitdiffstats
path: root/cgit.c
Commit message (Collapse)AuthorAgeLines
...
* | Merge branch 'jp/defbranch'Gravatar Lars Hjemli2012-03-19-1/+14
|\ \
| * | cgit.c: use resolve_ref() to guess_defbranch()Gravatar Lars Hjemli2011-06-21-27/+7
| | | | | | | | | | | | | | | | | | | | | | | | The resolve_ref() function handles reading of git- and filesystem symbolic links (including proper whitespace trimming) and packed refs. There's no point in reimplementing this function in cgit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Only guess default branch when a repo page is requestedGravatar Lars Hjemli2011-06-21-1/+34
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | There's no need to invoke guess_defbranch() for each repo during scan-path, since repo.defbranch is only used when repo content is being displayed. Also, some users prefer to register their projects manually in cgitrc but they got no benefit from the new repo.defbranch handling. This patch tries to rectify these issues by only invoking guess_defbranch() when needed, regardless of how the repo was registered. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'lh/module-links'Gravatar Lars Hjemli2012-03-19-2/+7
|\ \
| * | Do not provide a default value for `module-link`Gravatar Lars Hjemli2011-06-15-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old default value was an abomination which never should have been allowed to see the light of day. This patch removes the default, which is a backwards incompatible change with low probability of causing anyone any real trouble (a repo with submodules, displayed by cgit using the default value of `module-link`, is very unlikely to actually generate working links). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | ui-tree.c: add support for path-selected submodule linksGravatar Lars Hjemli2011-06-15-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current 'repo.module-link' option is sufficient when all gitlinks in a repository can be converted to commit links in a uniform way, but not when different submodules/paths needs different settings. This patch adds support for 'repo.module-link.<path>', which will be used for linking to submodules at paths matching one such entry. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'stable'Gravatar Lars Hjemli2012-01-04-0/+1
|\ \ \ | |_|/ |/| |
| * | Fix diff mode switching when side-by-side-diffs=1Gravatar Tim Chen2012-01-04-0/+1
| | | | | | | | | | | | | | | | | | | | | When side-by-side-diffs=1 was set in cgitrc, specyfing 'ss=0' in the query- string would not switch to unified diffs. This patch fixes the issue by introducing a separate variable to track the occurrence of "ss" in the querystring.
* | | Merge branch 'stable'Gravatar Lars Hjemli2011-06-18-1/+5
|\ \ \ | |/ / | | / | |/ |/|
| * cgit.c: improve error message when git repo cannot be accessedGravatar Lars Hjemli2011-06-18-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | The current 'Not a git repository' error message is not very helpful, since it doesn't state the cause of the problem. This patch uses errno to provide a hint of the underlying problem. It would have been even better to give the exact cause (e.g. for ENOENT it would be nice to know which file/directory is missing), but that would require reimplementing setup_git_directory_gently() which seems a bit overkill. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | cgit.c: add 'clone-url' setting with support for macro expansionGravatar Lars Hjemli2011-06-14-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current 'clone-prefix' setting has some known issues: * All repos get the same 'clone-prefix' value since the setting is not adopted during repo registration (in cgitrc, or during scan-path traversal), but only when the setting is used. * The generated clone-urls for a repo is a combination of 'clone-prefix', a slash and the repo url. This doesn't work well with e.g. ssh-style urls like 'git@example.org:repo.git', since the inserted slash will make the repo relative to the filesystem root. * If 'remove-suffix' is enabled, the generated clone-urls will not work for cloning (except for http-urls to cgit itself) since they miss the '.git' suffix. The new 'clone-url' setting is designed to avoid the mentioned issues: * Each repo adopts the default 'clone-url' when the repo is defined. This allows different groups of repos to adopt different values. * The clone-urls for a repo is generated by expanding environment variables in a string template without inserting arbitrary characters, hence any kind of clone-url can be generated. * Macro expansion also eases the 'remove-suffix' pain since it's now possible to define e.g. 'clone-url=git://foo.org/$CGIT_REPO_URL.git' for a set of repos. A furter improvement would be to define e.g. $CGIT_REPO_SUFFIX to '.git' for all repos which had their url prettified, or to store the original $CGIT_REPO_URL in e.g. $CGIT_REPO_REAL_URL before suffix removal. Reviewed-by: Ferry Huberts <mailings@hupie.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | cgit.c: always setup cgit repo environment variablesGravatar Lars Hjemli2011-06-14-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | When cgit learned to setup environment variables for certain repo settings before invoking a filter process, the setup occurred inside cgit_open_filter(). This patch moves the setup out of cgit_open_filter() and into prepare_repo_cmd() to prepare for additional uses of these variables. Reviewed-by: Ferry Huberts <mailings@hupie.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'fh/filter-api'Gravatar Lars Hjemli2011-05-24-7/+20
|\ \ | | | | | | | | | | | | Conflicts: cgit.c
| * | new_filter: determine extra_args from filter typeGravatar Ferry Huberts2011-03-26-7/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the number of extra arguments is linked hard to the type of the filter. This is also logical since it would be confusing to have a different number of arguments for the same type of filter depending on the context under which the filter is run (unless ofcourse one the parameters would make the context clear, which is currently not the case). Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'stable'Gravatar Lars Hjemli2011-05-24-1/+4
|\ \ \ | | |/ | |/|
| * | fix virtual-root if script-name is ""Gravatar Mark Lodato2011-05-24-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In d0cb841 (Avoid trailing slash in virtual-root), virtual-root was set from script-name using trim_end(). However, if script-name was the empty string (""), which happens when cgit is used to serve the root path on a domain (/), trim_end() returns NULL and cgit acts like virtual-root is not available. Now, set virtual-root to "" in this case, which fixes this bug. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'dm/disable-clone'Gravatar Lars Hjemli2011-05-15-1/+11
|\ \ \ | |/ / |/| |
| * | Return 404 on command not foundGravatar Dan McGee2011-02-19-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | We were returning 200 before. Even 404 is questionable in all cases, but 200 was totally wrong. Also match the case of all of the "Not found" status messsages. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Allow disabling of HTTP clone URLsGravatar Dan McGee2011-02-19-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If advertising other URLs to your users, you may not want to make this available through cgit (e.g. if you have the smart HTTP transport set up elsewhere). Allow disabling the three magic commands that simulate the git server, but default it to enabled. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | new_filter: correctly initialise all arguments for a new filterGravatar Ferry Huberts2011-03-26-2/+4
| |/ |/| | | | | | | Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Gravatar Lars Hjemli2011-03-05-2/+3
|\ \
| * | Avoid trailing slash in virtual-rootGravatar Lars Hjemli2011-03-05-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When setting virtual-root from cgitrc, care is taken to avoid trailing slashes. But when no virtual-root setting is specified, SCRIPT_FILE from the web server is used without similar checks. This patch fixes the inconsistency, which could lead to double-slashes in generated links. Noticed-by: Wouter Van Hemel <wouter@duodecim.org> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Use GIT-1.7.3Gravatar Lars Hjemli2010-09-27-1/+1
| | | | | | | | | | | | | | | | | | | | | This fixes http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-2542. Noticed-by: Silvio Cesare <silvio.cesare@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'br/misc'Gravatar Lars Hjemli2011-02-19-2/+6
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * br/misc: Use transparent background for the cgit logo ssdiff: anchors for ssdiff implement repo.logo and repo.logo-link
| * | | implement repo.logo and repo.logo-linkGravatar Bernhard Reutner-Fischer2011-02-19-2/+6
| | |/ | |/| | | | | | | | | | | | | | | | | | | Allow for per repo logo and logo-link; Use global logo and logo-link per default. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'jh/scan-path'Gravatar Lars Hjemli2011-02-19-0/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | * jh/scan-path: scan_path(): Do not recurse into hidden directories by default scan_path(): Improve handling of inaccessible directories
| * | | scan_path(): Do not recurse into hidden directories by defaultGravatar Johan Herland2011-02-19-0/+3
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Paths that start with a period ('.') are considered hidden in the Unix world. scan_path() should arguably not recurse into these directories by default. This patch makes it so, and introduces the "scan-hidden-path" config variable for overriding the new default and revert to the old behaviour (scanning _all_ directories, including hidden .directories). Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <larsh@prediktor.no>
* | | ui-log: Implement support for commit graphsGravatar Johan Herland2010-11-16-0/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach CGit to print an ASCII art commit graph to the left of the commit message, similar to 'git log --graph'. The graph adds extra lines (table rows) to the log when needed to add/remove/shuffle edges in the graph. When 'showmsg' is enabled, the graph is automatically padded to account for the extra lines added by the commit message/notes. This feature is controlled by a new config variable: "enable-commit-graph" (disabled by default), and individual repos can control it by setting "repo.enable-commit-graph". Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add `strict-export` optionGravatar Felix Hanley2010-11-09-0/+2
| | | | | | | | | | | | | | | | | | | | This option is used to specify a filename which needs to be present in the repositories found during `scan-path` processing. By setting this option to 'git-daemon-export-ok', only repositories explicitly marked for git daemon export will be included in the cgit configuration. Signed-off-by: Felix Hanley <felix@seconddrawer.com.au> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'ml/bugfix'Gravatar Lars Hjemli2010-09-20-1/+1
|\ \
| * | fix errors in printf-style format stringsGravatar Mark Lodato2010-09-05-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were many places where the arguments to a printf-like function did not match the format string. Mostly, these were a missing 'l' flag, but there were three exceptions: - In ui-stats.c, a size_t argument must be printed. C99 has the "%zu" flag for this purpose, but not all compilers support this. Therefore, we mimic what git does - use a NO_C99_FORMAT Makefile variable. - In ui-stats.c, cgit_print_error() was called with a pointer instead of a character. - In ui-log.c, the "columns" argument was never used. Signed-off-by: Mark Lodato <lodatom@gmail.com>
* | | Merge branch 'lh/section-from-path'Gravatar Lars Hjemli2010-09-20-0/+2
|\ \ \ | | | | | | | | | | | | | | | | Conflicts: scan-tree.c
| * | | Add support for 'section-from-path' optionGravatar Lars Hjemli2010-08-22-0/+2
| |/ / | | | | | | | | | | | | | | | | | | This option can be used to autogenerate section names during scan-path processing. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Add support for "readme" optionGravatar Lars Hjemli2010-08-22-5/+3
|/ / | | | | | | | | | | The value of this option is used as the default value for repo.readme. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Use GIT-1.7.2.2Gravatar Lars Hjemli2010-08-22-1/+1
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Support refspecs in about-filter.Gravatar Jason A. Donenfeld2010-08-21-1/+3
| | | | | | | | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add support for 'enable-gitweb-owner' optionGravatar Jason A. Donenfeld2010-08-04-0/+3
| | | | | | | | | | | | | | | | | | When this option is enabled (which it is by default), cgit will lookup the 'gitweb.owner' setting in each git config file found when processing the 'scan-path' option. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add support for 'remove-suffix' optionGravatar Jason A. Donenfeld2010-08-04-0/+3
| | | | | | | | | | | | | | | | When this option is enabled, the '.git' suffix of repository directories found while processing the 'scan-path' option will be removed. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add support for 'project-list' optionGravatar Jason A. Donenfeld2010-08-04-5/+22
| | | | | | | | | | | | | | | | | | This option specifies the location of a projectlist file as used by gitweb - when 'scan-tree' is later specified, only the projects listed in the projectlist file will be added. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'jh/ignorews'Gravatar Lars Hjemli2010-07-18-0/+2
|\ \
| * | Add URL parameter 'ignorews' for optionally ignoring whitespace in diffsGravatar Johan Herland2010-07-18-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | The new ctx.qry.ignorews variable is passed via cgit_diff_files() and cgit_diff_tree() to Git's diff machinery. This is equivalent to passing --ignore-all-space to 'git diff'. Signed-off-by: Johan Herland <johan@herland.net>
* | | Merge branch 'lh/macros'Gravatar Lars Hjemli2010-07-18-5/+5
|\ \ \
| * | | Add support for environment variable expansionGravatar Lars Hjemli2010-03-22-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch teaches cgit to expand environment variables in certain cgitrc option values (cache_root, scan-path, include) plus when finding the location of cgitrc itself. One use case for this feature is virtual hosting - e.g. by setting $CGIT_CONFIG='/etc/cgitrc/$HTTP_HOST' in httpd.conf, all virtual hosts automatically gets their own cgitrc. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | | Merge branch 'jh/context-lines'Gravatar Lars Hjemli2010-06-22-0/+2
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | Conflicts: cgit.c cgit.h
| * | | Add URL parameter 'context' for changing the number of context lines in diffsGravatar Johan Herland2010-06-19-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new ctx.qry.context variable is picked up by cgit_print_diff(), and passed via cgit_diff_files() to Git's diff machinery. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | | Merge branch 'jh/path-limit'Gravatar Lars Hjemli2010-06-22-0/+6
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | Conflicts: cgit.h ui-commit.c
| * | | struct cgit_cmd: Differentiate between various usages of ctx.qry.pathGravatar Johan Herland2010-06-19-0/+6
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For many commands/pages (e.g. 'tree', 'diff', 'plain', etc.), the ctx.qry.path argument is interpreted as a path within the "virtual" project directory structure. However, for some other commands (notably 'refs', and the clone-related commands) ctx.qry.path is used in a different context (as a more or less "real" path within the '.git' directory). This patch differentiates between these two usages of ctx.qry.path, by introducing a new variable - ctx.qry.vpath - which is equal to ctx.qry.path in the former case, and NULL in the latter. This will become useful in future patches when we want various pages and the links between them to preserve existing in-project paths. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'ag/atom-fixes'Gravatar Lars Hjemli2010-06-19-0/+5
|\ \ \
| * | | Add 'max-atom-items' config variableGravatar Aaron Griffin2010-03-23-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows one to specify the items in the RSS feeds Signed-off-by: Aaron Griffin <agriffin@datalogics.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | | Add all=1 query param for atom feedsGravatar Aaron Griffin2010-03-23-0/+2
| |/ / | | | | | | | | | | | | | | | | | | Displays all items from all branches in one feed Signed-off-by: Aaron Griffin <agriffin@datalogics.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>