[PATCH] ui-diff: don't link to single file diff stat
john at keeping.me.uk
Mon Dec 29 23:27:55 CET 2014
Seeing the diff stat for a single file is pretty useless, so reset the
diff type before generating the links to individual files in the diff
stat so that the links will show a useful diff.
Reported-by: Konstantin Ryabitsev <mricon at kernel.org>
Signed-off-by: John Keeping <john at keeping.me.uk>
On Mon, Dec 29, 2014 at 03:09:55PM -0500, Konstantin Ryabitsev wrote:
> On 23/12/14 09:30 PM, Jason A. Donenfeld wrote:
> > Ahh yes, of course -- John has done it, and it's been merged
> > here: ddfaef6bb28e697491b25bff5a7b260d44ce6ccf
> I actually had a chance to try it out now. It looks pretty nice, but has
> an unintended downside in the sense that "dt=2" is sticky. E.g. for a
> link like:
> This will show the diffstat only, but then if I click on any of the
> files for more details, the "diffstat only" mode persists. The user
> would then need to know to change to "unified" in the dropdown on the
> right to see actual diff contents.
> It's not a bug per se, just wondering if we can improve the user experience.
Something like this, perhaps?
ui-diff.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/ui-diff.c b/ui-diff.c
index bf2ec57..5b6df1f 100644
@@ -428,6 +428,16 @@ void cgit_print_diff(const char *new_rev, const char *old_rev,
+ * Clicking on a link to a file in the diff stat should show a diff
+ * of the file, showing the diff stat limited to a single file is
+ * pretty useless. All links from this point on will be to
+ * individual files, so we simply reset the difftype in the query
+ * here to avoid propagating DIFF_STATONLY to the individual files.
+ if (difftype == DIFF_STATONLY)
+ ctx.qry.difftype = ctx.cfg.difftype;
cgit_print_diffstat(old_rev_sha1, new_rev_sha1, prefix);
if (difftype == DIFF_STATONLY)
More information about the CGit