X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/ab350a77b1d3b0e251cc28329f2e16f0566e521e..f32a2da636ffa6eaa6b8d0d3f35a673fa12e404a:/cgitrc.5.txt diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 5903a93..9b803b3 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -40,9 +40,14 @@ agefile:: function in libgit. Recommended timestamp-format is "yyyy-mm-dd hh:mm:ss". Default value: "info/web/last-modified". +branch-sort:: + Flag which, when set to "age", enables date ordering in the branch ref + list, and when set to "name" enables ordering by branch name. Default + value: "name". + cache-root:: Path used to store the cgit cache entries. Default value: - "/var/cache/cgit". + "/var/cache/cgit". See also: "MACRO EXPANSION". cache-dynamic-ttl:: Number which specifies the time-to-live, in minutes, for the cached @@ -70,12 +75,21 @@ cache-static-ttl:: version of repository pages accessed with a fixed SHA1. Default value: "5". +case-sensitive-sort:: + Sort items in the repo list case sensitively. Default value: "1". + See also: repository-sort, section-sort. + clone-prefix:: Space-separated list of common prefixes which, when combined with a repository url, generates valid clone urls for the repository. This setting is only used if `repo.clone-url` is unspecified. Default value: none. +clone-url:: + Space-separated list of clone-url templates. This setting is only + used if `repo.clone-url` is unspecified. Default value: none. See + also: "MACRO EXPANSION", "FILTER API". + commit-filter:: Specifies a command which will be invoked to format commit messages. The command will get the message on its STDIN, and the STDOUT from the @@ -83,6 +97,12 @@ commit-filter:: be used to implement bugtracker integration. Default value: none. See also: "FILTER API". +commit-sort:: + Flag which, when set to "date", enables strict date ordering in the + commit log, and when set to "topo" enables strict topological + ordering. If unset, the default ordering of "git log" is used. Default + value: unset. + css:: Url which specifies the css document to include in all cgit pages. Default value: "/cgit.css". @@ -101,11 +121,6 @@ enable-filter-overrides:: Flag which, when set to "1", allows all filter settings to be overridden in repository-specific cgitrc files. Default value: none. -enable-gitweb-owner:: - If set to "1" and scan-path is enabled, we first check each repository - for the git config value "gitweb.owner" to determine the owner. - Default value: "1". See also: scan-path. - enable-http-clone:: If set to "1", cgit will act as an dumb HTTP endpoint for git clones. If you use an alternate way of serving git repositories, you may wish @@ -116,6 +131,10 @@ enable-index-links:: each repo in the repository index (specifically, to the "summary", "commit" and "tree" pages). Default value: "0". +enable-index-owner:: + Flag which, when set to "1", will make cgit display the owner of + each repo in the repository index. Default value: "1". + enable-log-filecount:: Flag which, when set to "1", will make cgit print the number of modified files for each commit on the repository log page. Default @@ -141,6 +160,16 @@ enable-tree-linenumbers:: Flag which, when set to "1", will make cgit generate linenumber links for plaintext blobs printed in the tree view. Default value: "1". +enable-git-config:: + Flag which, when set to "1", will allow cgit to use git config to set + any repo specific settings. This option is used in conjunction with + "scan-path", and must be defined prior, to augment repo-specific + settings. The keys gitweb.owner, gitweb.category, and gitweb.description + will map to the cgit keys repo.owner, repo.section, and repo.desc, + respectivly. All git config keys that begin with "cgit." will be mapped + to the corresponding "repo." key in cgit. Default value: "0". See also: + scan-path, section-from-path. + favicon:: Url used as link to a shortcut icon for cgit. If specified, it is suggested to use the value "/favicon.ico" since certain browsers will @@ -161,7 +190,7 @@ header:: include:: Name of a configfile to include before the rest of the current config- - file is parsed. Default value: none. + file is parsed. Default value: none. See also: "MACRO EXPANSION". index-header:: The content of the file specified with this option will be included @@ -221,11 +250,23 @@ mimetype.:: Set the mimetype for the specified filename extension. This is used by the `plain` command when returning blob content. +mimetype-file:: + Specifies the file to use for automatic mimetype lookup. If specified + then this field is used as a fallback when no "mimetype." match is + found. If unspecified then no such lookup is performed. The typical file + to use on a Linux system is /etc/mime.types. The format of the file must + comply to: + - a comment line is an empty line or a line starting with a hash (#), + optionally preceded by whitespace + - a non-comment line starts with the mimetype (like image/png), followed + by one or more file extensions (like jpg), all separated by whitespace + Default value: none. See also: "mimetype.". + module-link:: Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing. The arguments for the formatstring are the path and SHA1 of the submodule commit. Default - value: "./?repo=%s&page=commit&id=%s" + value: none. nocache:: If set to the value "1" caching will be disabled. This settings is @@ -243,7 +284,8 @@ noheader:: project-list:: A list of subdirectories inside of scan-path, relative to it, that should loaded as git repositories. This must be defined prior to - scan-path. Default value: none. See also: scan-path. + scan-path. Default value: none. See also: scan-path, "MACRO + EXPANSION". readme:: Text which will be used as default value for "repo.readme". Default @@ -252,7 +294,8 @@ readme:: remove-suffix:: If set to "1" and scan-path is enabled, if any repositories are found with a suffix of ".git", this suffix will be removed for the url and - name. Default value: "0". See also: scan-path. + name. This must be defined prior to scan-path. Default value: "0". + See also: scan-path. renamelimit:: Maximum number of files to consider when detecting renames. The value @@ -263,6 +306,12 @@ repo.group:: Legacy alias for "section". This option is deprecated and will not be supported in cgit-1.0. +repository-sort:: + The way in which repositories in each section are sorted. Valid values + are "name" for sorting by the repo name or "age" for sorting by the + most recently updated repository. Default value: "name". See also: + section, case-sensitive-sort, section-sort. + robots:: Text used as content for the "robots" meta-tag. Default value: "index, nofollow". @@ -295,18 +344,25 @@ scan-path:: scan-path loads only the directories listed in the file pointed to by project-list. Be advised that only the global settings taken before the scan-path directive will be applied to each repository. - Default value: none. See also: cache-scanrc-ttl, project-list. + Default value: none. See also: cache-scanrc-ttl, project-list, + "MACRO EXPANSION". section:: The name of the current repository section - all repositories defined after this option will inherit the current section name. Default value: none. +section-sort:: + Flag which, when set to "1", will sort the sections on the repository + listing by name. Set this flag to "0" if the order in the cgitrc file should + be preserved. Default value: "1". See also: section, + case-sensitive-sort, repository-sort. + section-from-path:: - A number which, if specified before scan-path, specifies how many + A number which, if defined prior to scan-path, specifies how many path elements from each repo path to use as a default section name. If negative, cgit will discard the specified number of path elements - above the repo directory. Default value: 0. + above the repo directory. Default value: "0". side-by-side-diffs:: If set to "1" shows side-by-side diffs instead of unidiffs per @@ -342,8 +398,8 @@ strict-export:: Filename which, if specified, needs to be present within the repository for cgit to allow access to that repository. This can be used to emulate gitweb's EXPORT_OK and STRICT_EXPORT functionality and limit cgit's - repositories to match those exported by git-daemon. This option MUST come - before 'scan-path'. + repositories to match those exported by git-daemon. This option must + be defined prior to scan-path. virtual-root:: Url which, if specified, will be used as root for all cgit links. It @@ -353,24 +409,37 @@ virtual-root:: NOTE: cgit has recently learned how to use PATH_INFO to achieve the same kind of virtual urls, so this option will probably be deprecated. + REPOSITORY SETTINGS ------------------- repo.about-filter:: Override the default about-filter. Default value: none. See also: "enable-filter-overrides". See also: "FILTER API". +repo.branch-sort:: + Flag which, when set to "age", enables date ordering in the branch ref + list, and when set to "name" enables ordering by branch name. Default + value: "name". + repo.clone-url:: A list of space-separated urls which can be used to clone this repo. - Default value: none. + Default value: none. See also: "MACRO EXPANSION". repo.commit-filter:: Override the default commit-filter. Default value: none. See also: "enable-filter-overrides". See also: "FILTER API". +repo.commit-sort:: + Flag which, when set to "date", enables strict date ordering in the + commit log, and when set to "topo" enables strict topological + ordering. If unset, the default ordering of "git log" is used. Default + value: unset. + repo.defbranch:: The name of the default branch for this repository. If no such branch exists in the repository, the first branch name (when sorted) is used - as default instead. Default value: "master". + as default instead. Default value: branch pointed to by HEAD, or + "master" if there is no suitable HEAD. repo.desc:: The value to show as repository description. Default value: none. @@ -404,6 +473,18 @@ repo.logo-link:: calculated url of the repository index page will be used. Default value: global logo-link. +repo.module-link:: + Text which will be used as the formatstring for a hyperlink when a + submodule is printed in a directory listing. The arguments for the + formatstring are the path and SHA1 of the submodule commit. Default + value: + +repo.module-link.:: + Text which will be used as the formatstring for a hyperlink when a + submodule with the specified subdirectory path is printed in a + directory listing. The only argument for the formatstring is the SHA1 + of the submodule commit. Default value: none. + repo.max-stats:: Override the default maximum statistics period. Valid values are equal to the values specified for the global "max-stats" setting. Default @@ -458,38 +539,62 @@ config files, e.g. "repo.desc" becomes "desc". FILTER API ---------- -- about filter:: - This filter is given no arguments. - The about text that is to be filtered is available on standard input and the - filtered text is expected on standard output. -- commit filter:: - This filter is given no arguments. - The commit message text that is to be filtered is available on standard input - and the filtered text is expected on standard output. -- source filter:: - This filter is given a single parameter: the filename of the source file to - filter. The filter can use the filename to determine (for example) the syntax - highlighting mode. - The contents of the source file that is to be filtered is available on - standard input and the filtered contents is expected on standard output. +about filter:: + This filter is given no arguments. The about text that is to be + filtered is available on standard input and the filtered text is + expected on standard output. + +commit filter:: + This filter is given no arguments. The commit message text that is to + be filtered is available on standard input and the filtered text is + expected on standard output. + +source filter:: + This filter is given a single parameter: the filename of the source + file to filter. The filter can use the filename to determine (for + example) the syntax highlighting mode. The contents of the source + file that is to be filtered is available on standard input and the + filtered contents is expected on standard output. Also, all filters are handed the following environment variables: -- CGIT_REPO_URL ( = repo.url setting ) -- CGIT_REPO_NAME ( = repo.name setting ) -- CGIT_REPO_PATH ( = repo.path setting ) -- CGIT_REPO_OWNER ( = repo.owner setting ) -- CGIT_REPO_DEFBRANCH ( = repo.defbranch setting ) -- CGIT_REPO_SECTION ( = section setting ) -- CGIT_REPO_CLONE_URL ( = repo.clone-url setting ) + +- CGIT_REPO_URL (from repo.url) +- CGIT_REPO_NAME (from repo.name) +- CGIT_REPO_PATH (from repo.path) +- CGIT_REPO_OWNER (from repo.owner) +- CGIT_REPO_DEFBRANCH (from repo.defbranch) +- CGIT_REPO_SECTION (from repo.section) +- CGIT_REPO_CLONE_URL (from repo.clone-url) If a setting is not defined for a repository and the corresponding global setting is also not defined (if applicable), then the corresponding -environment variable will be an empty string. +environment variable will be unset. + + +MACRO EXPANSION +--------------- +The following cgitrc options supports a simple macro expansion feature, +where tokens prefixed with "$" are replaced with the value of a similary +named environment variable: + +- cache-root +- include +- project-list +- scan-path + +Macro expansion will also happen on the content of $CGIT_CONFIG, if +defined. + +One usage of this feature is virtual hosting, which in its simplest form +can be accomplished by adding the following line to /etc/cgitrc: + + include=/etc/cgitrc.d/$HTTP_HOST + +The following options are expanded during request processing, and support +the environment variables defined in "FILTER API": -Note that under normal circumstance all these environment variables are -defined. If however the total size of the defined settings exceed the -allocated buffer within cgit then only the environment variables that fit -in the allocated buffer are handed to the filter. +- clone-url +- repo.clone-url EXAMPLE CGITRC FILE @@ -500,8 +605,8 @@ EXAMPLE CGITRC FILE cache-size=1000 -# Specify some default clone prefixes -clone-prefix=git://example.com ssh://example.com/pub/git http://example.com/git +# Specify some default clone urls using macro expansion +clone-url=git://foo.org/$CGIT_REPO_URL git@foo.org:$CGIT_REPO_URL # Specify the css url css=/css/cgit.css