summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--cgit.css29
-rw-r--r--cgit.h1
-rw-r--r--ui-commit.c15
-rw-r--r--ui-log.c12
-rw-r--r--ui-refs.c26
6 files changed, 72 insertions, 13 deletions
diff --git a/Makefile b/Makefile
index 8b426fe..3e5a38d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-CGIT_VERSION = v0.8.3.2
+CGIT_VERSION = v0.8.3.3
CGIT_SCRIPT_NAME = cgit.cgi
CGIT_SCRIPT_PATH = /var/www/htdocs/cgit
CGIT_DATA_PATH = $(CGIT_SCRIPT_PATH)
diff --git a/cgit.css b/cgit.css
index 6e47eb3..0c88b65 100644
--- a/cgit.css
+++ b/cgit.css
@@ -164,6 +164,17 @@ table.list td.logmsg {
padding: 1em 0.5em 2em 0.5em;
}
+table.list td.lognotes-label {
+ text-align:right;
+ vertical-align:top;
+}
+
+table.list td.lognotes {
+ font-family: monospace;
+ white-space: pre;
+ padding: 0em 0.5em 2em 0.5em;
+}
+
table.list td a {
color: black;
}
@@ -326,6 +337,24 @@ div.commit-msg {
font-family: monospace;
}
+div.notes-header {
+ font-weight: bold;
+ padding-top: 1.5em;
+}
+
+div.notes {
+ white-space: pre;
+ font-family: monospace;
+ border: solid 1px #ee9;
+ background-color: #ffd;
+ padding: 0.3em 2em 0.3em 1em;
+ float: left;
+}
+
+div.notes-footer {
+ clear: left;
+}
+
div.diffstat-header {
font-weight: bold;
padding-top: 1.5em;
diff --git a/cgit.h b/cgit.h
index 232099d..4090cd4 100644
--- a/cgit.h
+++ b/cgit.h
@@ -19,6 +19,7 @@
#include <xdiff-interface.h>
#include <xdiff/xdiff.h>
#include <utf8.h>
+#include <notes.h>
/*
diff --git a/ui-commit.c b/ui-commit.c
index a11bc5f..45af450 100644
--- a/ui-commit.c
+++ b/ui-commit.c
@@ -17,6 +17,7 @@ void cgit_print_commit(char *hex, const char *prefix)
struct commit *commit, *parent;
struct commitinfo *info, *parent_info;
struct commit_list *p;
+ struct strbuf notes = STRBUF_INIT;
unsigned char sha1[20];
char *tmp, *tmp2;
int parents = 0;
@@ -35,6 +36,8 @@ void cgit_print_commit(char *hex, const char *prefix)
}
info = cgit_parse_commit(commit);
+ get_commit_notes(commit, &notes, PAGE_ENCODING, 0);
+
load_ref_decorations(DECORATE_FULL_REFS);
html("<table summary='commit info' class='commit-info'>\n");
@@ -120,6 +123,17 @@ void cgit_print_commit(char *hex, const char *prefix)
if (ctx.repo->commit_filter)
cgit_close_filter(ctx.repo->commit_filter);
html("</div>");
+ if (notes.len != 0) {
+ html("<div class='notes-header'>Notes</div>");
+ html("<div class='notes'>");
+ if (ctx.repo->commit_filter)
+ cgit_open_filter(ctx.repo->commit_filter);
+ html_txt(notes.buf);
+ if (ctx.repo->commit_filter)
+ cgit_close_filter(ctx.repo->commit_filter);
+ html("</div>");
+ html("<div class='notes-footer'></div>");
+ }
if (parents < 3) {
if (parents)
tmp = sha1_to_hex(commit->parents->item->object.sha1);
@@ -127,5 +141,6 @@ void cgit_print_commit(char *hex, const char *prefix)
tmp = NULL;
cgit_print_diff(ctx.qry.sha1, tmp, prefix);
}
+ strbuf_release(&notes);
cgit_free_commitinfo(info);
}
diff --git a/ui-log.c b/ui-log.c
index ee93653..7f38d2a 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -111,6 +111,9 @@ void print_commit(struct commit *commit)
}
html("</td></tr>\n");
if (ctx.qry.showmsg) {
+ struct strbuf notes = STRBUF_INIT;
+ get_commit_notes(commit, &notes, PAGE_ENCODING, 0);
+
if (ctx.repo->enable_log_filecount) {
cols++;
if (ctx.repo->enable_log_linecount)
@@ -120,6 +123,15 @@ void print_commit(struct commit *commit)
cols);
html_txt(info->msg);
html("</td></tr>\n");
+ if (notes.len != 0) {
+ html("<tr class='nohover'>");
+ html("<td class='lognotes-label'>Notes:</td>");
+ htmlf("<td colspan='%d' class='lognotes'>",
+ cols);
+ html_txt(notes.buf);
+ html("</td></tr>\n");
+ }
+ strbuf_release(&notes);
}
cgit_free_commitinfo(info);
}
diff --git a/ui-refs.c b/ui-refs.c
index 94ff6be..caddfbc 100644
--- a/ui-refs.c
+++ b/ui-refs.c
@@ -42,23 +42,25 @@ static int cmp_branch_age(const void *a, const void *b)
return cmp_age(r1->commit->committer_date, r2->commit->committer_date);
}
+static int get_ref_age(struct refinfo *ref)
+{
+ if (!ref->object)
+ return 0;
+ switch (ref->object->type) {
+ case OBJ_TAG:
+ return ref->tag ? ref->tag->tagger_date : 0;
+ case OBJ_COMMIT:
+ return ref->commit ? ref->commit->committer_date : 0;
+ }
+ return 0;
+}
+
static int cmp_tag_age(const void *a, const void *b)
{
struct refinfo *r1 = *(struct refinfo **)a;
struct refinfo *r2 = *(struct refinfo **)b;
- int r1date, r2date;
-
- if (r1->object->type != OBJ_COMMIT)
- r1date = r1->tag->tagger_date;
- else
- r1date = r1->commit->committer_date;
-
- if (r2->object->type != OBJ_COMMIT)
- r2date = r2->tag->tagger_date;
- else
- r2date = r2->commit->committer_date;
- return cmp_age(r1date, r2date);
+ return cmp_age(get_ref_age(r1), get_ref_age(r2));
}
static int print_branch(struct refinfo *ref)