diff options
author | Vincent Ambo <mail@tazj.in> | 2022-06-21T21·02+0300 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2022-06-22T10·41+0000 |
commit | 45e7f2c3884fdd81356a74afae19eefcdc37dce8 (patch) | |
tree | 37d55580e9f57e5d7d06080f9ab82ad0685e01e4 | |
parent | cf91baa93883bc2f61a53f2f6c78348b9cebd7b7 (diff) |
feat(3p/cgit): Display depot revisions in log views r/4251
depot revisions are not recognised by git as a specific type of "decoration" (i.e. fall into `DECORATION_NONE`), which means that cgit skips them by default. Displaying them on code.tvl.fyi would be quite nice, so to work around this we check for the `refs/r/` prefix on skipped decorations and display them (without the `refs/` prefix) on commits. Change-Id: Ia9cece3876db471f93ab787258be527739af046b Reviewed-on: https://cl.tvl.fyi/c/depot/+/5891 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
-rw-r--r-- | third_party/cgit/cgit.css | 8 | ||||
-rw-r--r-- | third_party/cgit/ui-log.c | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/third_party/cgit/cgit.css b/third_party/cgit/cgit.css index 51ddbf833754..7133a7ba373e 100644 --- a/third_party/cgit/cgit.css +++ b/third_party/cgit/cgit.css @@ -668,6 +668,13 @@ div#cgit a.branch-deco { border: solid 1px #007700; } +div#cgit a.rev-deco { + color: #000; + padding: 0px 0.25em; + background-color: #eee; + border: solid 1px #aaa; +} + div#cgit a.tag-deco { color: #000; padding: 0px 0.25em; @@ -700,6 +707,7 @@ div#cgit div.commit-subject a.branch-deco, div#cgit div.commit-subject a.tag-deco, div#cgit div.commit-subject a.tag-annotated-deco, div#cgit div.commit-subject a.remote-deco, +div#cgit div.commit-subject a.rev-deco, div#cgit div.commit-subject a.deco { font-size: 75%; } diff --git a/third_party/cgit/ui-log.c b/third_party/cgit/ui-log.c index cfa9192b9365..6cd258c1ccf2 100644 --- a/third_party/cgit/ui-log.c +++ b/third_party/cgit/ui-log.c @@ -71,6 +71,16 @@ void show_commit_decorations(struct commit *commit) strlcpy(buf, prettify_refname(deco->name), sizeof(buf)); switch(deco->type) { case DECORATION_NONE: + /* If it is a depot revision, display it, otherwise + * ... */ + if (strncmp("refs/r/", buf, 7) == 0) { + html(" "); + cgit_log_link(/* trim 'refs/' */ buf + 5, + NULL, "rev-deco", buf, NULL, + ctx.qry.vpath, 0, NULL, NULL, + ctx.qry.showmsg, 0); + } + /* If the git-core doesn't recognize it, * don't display anything. */ break; |