]> granicus.if.org Git - cgit/commitdiff
about: allow to give head from query
authorChristian Hesse <mail@eworm.de>
Mon, 10 Jan 2022 09:15:33 +0000 (10:15 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Mon, 19 Dec 2022 15:13:58 +0000 (16:13 +0100)
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>
cgit.c
cgitrc.5.txt

diff --git a/cgit.c b/cgit.c
index 4b2d86c88129c871a41fd15727e5e61c1ef49359..2de6d7f84c530f30851c2b3931eaec11ca722b1c 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -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);
index 33a6a8c0c75832645a0d1c5b9b2b65d4d8cf2466..d9eb3b02d322e67759fb413e0f9fd27375fbeab1 100644 (file)
@@ -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: