about summary refs log tree commit diff stats
path: root/cgitrc.5.txt
diff options
context:
space:
mode:
authorLars Hjemli2011-06-06 20:49:13 +0000
committerLars Hjemli2011-06-13 23:04:30 +0000
commita1429dbc89f9c0945e32cea9fd3424d2fe56aeab (patch)
tree78d1501781d72f0698f673e9c44450e32118d843 /cgitrc.5.txt
parentcgit.c: always setup cgit repo environment variables (diff)
downloadcgit-a1429dbc89f9c0945e32cea9fd3424d2fe56aeab.tar.gz
cgit-a1429dbc89f9c0945e32cea9fd3424d2fe56aeab.zip
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