-rw-r--r-- | ui-commit.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ui-commit.c b/ui-commit.c index b49b2e9..73fa104 100644 --- a/ui-commit.c +++ b/ui-commit.c @@ -31,66 +31,67 @@ void print_filepair(struct diff_filepair *pair) case DIFF_STATUS_RENAMED: class = "mov"; break; case DIFF_STATUS_TYPE_CHANGED: class = "typ"; break; case DIFF_STATUS_UNKNOWN: class = "unk"; break; case DIFF_STATUS_UNMERGED: class = "stg"; break; default: die("bug: unhandled diff status %c", pair->status); } html("<tr>"); htmlf("<td class='mode'>"); if (is_null_sha1(pair->two->sha1)) { html_filemode(pair->one->mode); } else { html_filemode(pair->two->mode); } if (pair->one->mode != pair->two->mode && !is_null_sha1(pair->one->sha1) && !is_null_sha1(pair->two->sha1)) { html("<span class='modechange'>["); html_filemode(pair->one->mode); html("]</span>"); } htmlf("</td><td class='%s'>", class); - query = fmt("id=%s", sha1_to_hex(pair->two->sha1)); - html_link_open(cgit_pageurl(cgit_query_repo, "view", query), + query = fmt("id=%s&id2=%s", sha1_to_hex(pair->one->sha1), + sha1_to_hex(pair->two->sha1)); + html_link_open(cgit_pageurl(cgit_query_repo, "diff", query), NULL, NULL); if (pair->status == DIFF_STATUS_COPIED || pair->status == DIFF_STATUS_RENAMED) { html_txt(pair->two->path); htmlf("</a> (%s from ", pair->status == DIFF_STATUS_COPIED ? "copied" : "renamed"); query = fmt("id=%s", sha1_to_hex(pair->one->sha1)); html_link_open(cgit_pageurl(cgit_query_repo, "view", query), NULL, NULL); html_txt(pair->one->path); html("</a>)"); } else { html_txt(pair->two->path); html("</a>"); } html("<td>"); //TODO: diffstat graph html("</td></tr>\n"); files++; } void diff_format_cb(struct diff_queue_struct *q, struct diff_options *options, void *data) { int i; for (i = 0; i < q->nr; i++) { if (q->queue[i]->status == 'U') continue; print_filepair(q->queue[i]); |