aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cgit.c8
-rw-r--r--cgitrc.5.txt10
2 files changed, 10 insertions, 8 deletions
diff --git a/cgit.c b/cgit.c
index 4b2d86c..2de6d7f 100644
--- 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);
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: