neocgit

a more 'modern' version of cgit
Log | Files | Refs | Submodules | README | LICENSE | git clone https://git.ne02ptzero.me/git/neocgit

commit ddfaef6bb28e697491b25bff5a7b260d44ce6ccf
parent 1830271c5958526425f92ae2b369646b54e3c370
Author: John Keeping <john@keeping.me.uk>
Date:   Sun,  5 Oct 2014 10:59:05 +0100

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>

Diffstat:
Mcgit.h | 2+-
Mui-diff.c | 4++++
2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/cgit.h b/cgit.h @@ -53,7 +53,7 @@ typedef void (*filepair_fn)(struct diff_filepair *pair); typedef void (*linediff_fn)(char *line, int len); typedef enum { - DIFF_UNIFIED, DIFF_SSDIFF + DIFF_UNIFIED, DIFF_SSDIFF, DIFF_STATONLY } diff_type; typedef enum { diff --git a/ui-diff.c b/ui-diff.c @@ -349,6 +349,7 @@ void cgit_print_diff_ctrls() curr = ctx.qry.has_difftype ? ctx.qry.difftype : ctx.cfg.difftype; html_intoption(0, "unified", curr); html_intoption(1, "ssdiff", curr); + html_intoption(2, "stat only", curr); html("</select></td></tr>"); html("<tr><td/><td class='ctrl'>"); html("<noscript><input type='submit' value='reload'/></noscript>"); @@ -429,6 +430,9 @@ void cgit_print_diff(const char *new_rev, const char *old_rev, cgit_print_diffstat(old_rev_sha1, new_rev_sha1, prefix); + if (difftype == DIFF_STATONLY) + return; + if (use_ssdiff) { html("<table summary='ssdiff' class='ssdiff'>"); } else {