about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJohn Keeping2014-10-05 10:59:05 +0100
committerLukas Fleischer2014-12-13 12:38:42 +0100
commitddfaef6bb28e697491b25bff5a7b260d44ce6ccf (patch)
tree53a8bfe75e9f8250131fb2b38a346731ba5581cd
parentChange "ss" diff flag to an enum (diff)
downloadcgit-ddfaef6bb28e697491b25bff5a7b260d44ce6ccf.tar.gz
cgit-ddfaef6bb28e697491b25bff5a7b260d44ce6ccf.zip
ui-diff: add "stat only" diff type
This prints the diffstat but stops before printing (or generating) any
of the body of the diff.

No cgitrc option is added here so that we can wait to see how useful
this is before letting people set it as the default.

Suggested-by: Konstantin Ryabitsev <mricon@kernel.org>
Signed-off-by: John Keeping <john@keeping.me.uk>
-rw-r--r--cgit.h2
-rw-r--r--ui-diff.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/cgit.h b/cgit.h index 0eb5ed5..0c1585d 100644 --- a/cgit.h +++ b/cgit.h
@@ -53,7 +53,7 @@ typedef void (*filepair_fn)(struct diff_filepair *pair);
53typedef void (*linediff_fn)(char *line, int len); 53typedef void (*linediff_fn)(char *line, int len);
54 54
55typedef enum { 55typedef enum {
56 DIFF_UNIFIED, DIFF_SSDIFF 56 DIFF_UNIFIED, DIFF_SSDIFF, DIFF_STATONLY
57} diff_type; 57} diff_type;
58 58
59typedef enum { 59typedef enum {
diff --git a/ui-diff.c b/ui-diff.c index a4ade4d..bf2ec57 100644 --- a/ui-diff.c +++ b/ui-diff.c
@@ -349,6 +349,7 @@ void cgit_print_diff_ctrls()
349 curr = ctx.qry.has_difftype ? ctx.qry.difftype : ctx.cfg.difftype; 349 curr = ctx.qry.has_difftype ? ctx.qry.difftype : ctx.cfg.difftype;
350 html_intoption(0, "unified", curr); 350 html_intoption(0, "unified", curr);
351 html_intoption(1, "ssdiff", curr); 351 html_intoption(1, "ssdiff", curr);
352 html_intoption(2, "stat only", curr);
352 html("</select></td></tr>"); 353 html("</select></td></tr>");
353 html("<tr><td/><td class='ctrl'>"); 354 html("<tr><td/><td class='ctrl'>");
354 html("<noscript><input type='submit' value='reload'/></noscript>"); 355 html("<noscript><input type='submit' value='reload'/></noscript>");
@@ -429,6 +430,9 @@ void cgit_print_diff(const char *new_rev, const char *old_rev,
429 430
430 cgit_print_diffstat(old_rev_sha1, new_rev_sha1, prefix); 431 cgit_print_diffstat(old_rev_sha1, new_rev_sha1, prefix);
431 432
433 if (difftype == DIFF_STATONLY)
434 return;
435
432 if (use_ssdiff) { 436 if (use_ssdiff) {
433 html("<table summary='ssdiff' class='ssdiff'>"); 437 html("<table summary='ssdiff' class='ssdiff'>");
434 } else { 438 } else {