diff options
author | Christian Hesse | 2022-01-10 10:15:33 +0100 |
---|---|---|
committer | Jason A. Donenfeld | 2022-12-19 16:13:58 +0100 |
commit | a0f6669bdb74e58b0ddb3f4283209cd5e58c0eb9 (patch) | |
tree | d194a8164a9116662eb0f467481470666bf4a17a | |
parent | ce2062d9e29bf165ba8a70bfc92ff3ab08338d53 (diff) | |
download | cgit-a0f6669bdb74e58b0ddb3f4283209cd5e58c0eb9.tar cgit-a0f6669bdb74e58b0ddb3f4283209cd5e58c0eb9.tar.gz cgit-a0f6669bdb74e58b0ddb3f4283209cd5e58c0eb9.zip |
about: allow to give head from query
Reading the README from repository used to be limited to default
branch or a branch given in configuration. Let's allow a branch
from query if not specified explicitly.
Signed-off-by: Christian Hesse <mail@eworm.de>
-rw-r--r-- | cgit.c | 8 | ||||
-rw-r--r-- | cgitrc.5.txt | 10 |
2 files changed, 10 insertions, 8 deletions
@@ -507,9 +507,11 @@ static inline void parse_readme(const char *readme, char **filename, char **ref, /* Check if the readme is tracked in the git repo. */ colon = strchr(readme, ':'); if (colon && strlen(colon) > 1) { - /* If it starts with a colon, we want to use - * the default branch */ - if (colon == readme && repo->defbranch) + /* If it starts with a colon, we want to use head given + * from query or the default branch */ + if (colon == readme && ctx.qry.head) + *ref = xstrdup(ctx.qry.head); + else if (colon == readme && repo->defbranch) *ref = xstrdup(repo->defbranch); else *ref = xstrndup(readme, colon - readme); diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 33a6a8c..d9eb3b0 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -579,11 +579,11 @@ repo.readme:: verbatim as the "About" page for this repo. You may also specify a git refspec by head or by hash by prepending the refspec followed by a colon. For example, "master:docs/readme.mkd". If the value begins - with a colon, i.e. ":docs/readme.rst", the default branch of the - repository will be used. Sharing any file will expose that entire - directory tree to the "/about/PATH" endpoints, so be sure that there - are no non-public files located in the same directory as the readme - file. Default value: <readme>. + with a colon, i.e. ":docs/readme.rst", the head giving in query or + the default branch of the repository will be used. Sharing any file + will expose that entire directory tree to the "/about/PATH" endpoints, + so be sure that there are no non-public files located in the same + directory as the readme file. Default value: <readme>. repo.section:: Override the current section name for this repository. Default value: |