aboutsummaryrefslogtreecommitdiffstats
path: root/cgitrc.5.txt
diff options
context:
space:
mode:
authorGravatar Lars Hjemli <hjemli@gmail.com>2011-06-07 05:49:13 (JST)
committerGravatar Lars Hjemli <hjemli@gmail.com>2011-06-14 08:04:30 (JST)
commita1429dbc89f9c0945e32cea9fd3424d2fe56aeab (patch)
tree78d1501781d72f0698f673e9c44450e32118d843 /cgitrc.5.txt
parent3ec6b309505dc5f7ba14abe8861b02da34a9df0b (diff)
downloadcgit-a1429dbc89f9c0945e32cea9fd3424d2fe56aeab.zip
cgit-a1429dbc89f9c0945e32cea9fd3424d2fe56aeab.tar.gz
cgit.c: add 'clone-url' setting with support for macro expansion
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>
Diffstat (limited to 'cgitrc.5.txt')
-rw-r--r--cgitrc.5.txt17
1 files changed, 14 insertions, 3 deletions
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 9a9965b..5ba8134 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -76,6 +76,11 @@ clone-prefix::
76 setting is only used if `repo.clone-url` is unspecified. Default value: 76 setting is only used if `repo.clone-url` is unspecified. Default value:
77 none. 77 none.
78 78
79clone-url::
80 Space-separated list of clone-url templates. This setting is only
81 used if `repo.clone-url` is unspecified. Default value: none. See
82 also: "MACRO EXPANSION", "FILTER API".
83
79commit-filter:: 84commit-filter::
80 Specifies a command which will be invoked to format commit messages. 85 Specifies a command which will be invoked to format commit messages.
81 The command will get the message on its STDIN, and the STDOUT from the 86 The command will get the message on its STDIN, and the STDOUT from the
@@ -363,7 +368,7 @@ repo.about-filter::
363 368
364repo.clone-url:: 369repo.clone-url::
365 A list of space-separated urls which can be used to clone this repo. 370 A list of space-separated urls which can be used to clone this repo.
366 Default value: none. 371 Default value: none. See also: "MACRO EXPANSION".
367 372
368repo.commit-filter:: 373repo.commit-filter::
369 Override the default commit-filter. Default value: none. See also: 374 Override the default commit-filter. Default value: none. See also:
@@ -511,6 +516,12 @@ can be accomplished by adding the following line to /etc/cgitrc:
511 516
512 include=/etc/cgitrc.d/$HTTP_HOST 517 include=/etc/cgitrc.d/$HTTP_HOST
513 518
519The following options are expanded during request processing, and support
520the environment variables defined in "FILTER API":
521
522- clone-url
523- repo.clone-url
524
514 525
515EXAMPLE CGITRC FILE 526EXAMPLE CGITRC FILE
516------------------- 527-------------------
@@ -520,8 +531,8 @@ EXAMPLE CGITRC FILE
520cache-size=1000 531cache-size=1000
521 532
522 533
523# Specify some default clone prefixes 534# Specify some default clone urls using macro expansion
524clone-prefix=git://example.com ssh://example.com/pub/git http://example.com/git 535clone-url=git://foo.org/$CGIT_REPO_URL git@foo.org:$CGIT_REPO_URL
525 536
526# Specify the css url 537# Specify the css url
527css=/css/cgit.css 538css=/css/cgit.css