]> gitweb.ps.run Git - ps-cgit/blobdiff - cgitrc.5.txt
cache.c: cache ls_cache output properly
[ps-cgit] / cgitrc.5.txt
index 60539d7ecf947ba7c2aee9d760a8095fef099795..9b803b372ad97832b245f0e1b8adf78ac8d1d388 100644 (file)
@@ -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,16 +121,20 @@ 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
+       to disable this. Default value: "1".
 
 enable-index-links::
        Flag which, when set to "1", will make cgit generate extra links for
        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
@@ -136,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
@@ -156,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
@@ -216,11 +250,23 @@ mimetype.<ext>::
        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.<ext>" 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.<ext>".
+
 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
@@ -238,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
@@ -247,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
@@ -258,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".
@@ -288,19 +342,27 @@ scan-path::
        the result will be cached as a cgitrc include-file in the cache
        directory. If project-list has been defined prior to scan-path,
        scan-path loads only the directories listed in the file pointed to by
-       project-list. Default value: none. See also: cache-scanrc-ttl,
-       project-list.
+       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,
+       "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
@@ -309,7 +371,8 @@ side-by-side-diffs::
 snapshots::
        Text which specifies the default set of snapshot formats generated by
        cgit. The value is a space-separated list of zero or more of the
-       values "tar", "tar.gz", "tar.bz2" and "zip". Default value: none.
+       values "tar", "tar.gz", "tar.bz2", "tar.xz" and "zip". Default value:
+       none.
 
 source-filter::
        Specifies a command which will be invoked to format plaintext blobs
@@ -335,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
@@ -346,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.
@@ -397,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: <module-link>
+
+repo.module-link.<path>::
+       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
@@ -451,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
@@ -493,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