]> gitweb.ps.run Git - ps-cgit/commitdiff
Merge branch 'jd/gitolite'
authorLars Hjemli <hjemli@gmail.com>
Wed, 4 Aug 2010 01:10:29 +0000 (03:10 +0200)
committerLars Hjemli <hjemli@gmail.com>
Wed, 4 Aug 2010 01:10:29 +0000 (03:10 +0200)
Makefile
cgit.css
cgit.h
ui-commit.c
ui-log.c
ui-refs.c

index 8b426fe902352cabb40e88cb657c2233def25722..3e5a38d143a11a49b55d600e00a136aa6b82c679 100644 (file)
--- 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)
index 6e47eb3acfbf2eac8ce763575fa5b03a64030a74..0c88b65fe4cb1e5003c6bd569cefe4cd819af2a3 100644 (file)
--- 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 232099dba6bf759c28e62dccac46faf2288d0fe0..4090cd4f2fe114d6a70f9d138d9b67b3ad861d39 100644 (file)
--- a/cgit.h
+++ b/cgit.h
@@ -19,6 +19,7 @@
 #include <xdiff-interface.h>
 #include <xdiff/xdiff.h>
 #include <utf8.h>
+#include <notes.h>
 
 
 /*
index a11bc5f3b00d21368c3ba826e7060aeb14de83d7..45af45046a1d48e1759a18d04c51a6a77c693ae8 100644 (file)
@@ -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);
 }
index ee93653384695d7337b3947c9c59505800ec853a..7f38d2acb41dc9fe451c3ba9f133eb81794b71d9 100644 (file)
--- 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);
 }
index 94ff6be13cee2cfefde5369a0d7cbd760d454b1e..caddfbc4fbdb3949b6c2424e21baa528e220ce7f 100644 (file)
--- 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)