From: Jakub Narebski <jnareb@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Michał Kiedrowicz" <michal.kiedrowicz@gmail.com>, git@vger.kernel.org
Subject: Re: [PATCH v3 4/8] gitweb: Extract print_sidebyside_diff_lines()
Date: Thu, 5 Apr 2012 00:47:09 +0200 [thread overview]
Message-ID: <201204050047.10357.jnareb@gmail.com> (raw)
In-Reply-To: <7vsjgj6ufi.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
> Michał Kiedrowicz <michal.kiedrowicz@gmail.com> writes:
>
> > + if (!@$add) {
> > + # pure removal
> > +...
> > + } elsif (!@$rem) {
> > + # pure addition
> > +...
> > + } else {
> > + # assume that it is change
> > + print join '',
>
> I know this is not a new problem, but if your patch hunk has both '-' and
> '+' lines, what's there to "assume" that it is a change? Isn't it always?
What I meant here when I was writing it that they are lines that changed
between two versions, like '!' in original (not unified) context format.
We can omit this comment.
> > - # empty add/rem block on start context block, or end of chunk
> > - if ((@rem || @add) && (!$class || $class eq 'ctx')) {
> > -...
> > + ## print from accumulator when have some add/rem lines or end
> > + # of chunk (flush context lines)
> > + if (((@rem || @add) && $class eq 'ctx') || !$class) {
>
> This seems to change the condition. Earlier, it held true if (there is
> anything to show), and (class is unset or equal to ctx). The new code
> says something different.
Yes it does, as described in the commit message:
[...] It should
not change the gitweb output, but it **slightly changes its behavior**.
Before this commit, context is printed on the class change. Now, it's
printed just before printing added and removed lines, and at the end of
chunk.
The difference is that context lines are also printed accumulated now.
Though why this change is required for refactoring could have been
described in more detail...
> Also can $class be undef, and if so, doesn't
> it trigger comparison between undef and 'ctx' by having !$class check at
> the end of || chain?
Thanks for noticing this (I wonder why testsuite didn't caught it).
It should be
+ ## print from accumulator when have some add/rem lines or end
+ # of chunk (flush context lines)
+ if (!$class || ((@rem || @add) && $class eq 'ctx')) {
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2012-04-04 22:47 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-04 19:57 [PATCH v3 0/8] Highlight interesting parts of diff Michał Kiedrowicz
2012-04-04 19:57 ` [PATCH v3 1/8] gitweb: Use descriptive names in esc_html_hl_regions() Michał Kiedrowicz
2012-04-04 21:38 ` Junio C Hamano
2012-04-05 5:46 ` Michal Kiedrowicz
2012-04-04 19:57 ` [PATCH v3 2/8] gitweb: esc_html_hl_regions(): Don't create empty <span> elements Michał Kiedrowicz
2012-04-04 19:57 ` [PATCH v3 3/8] gitweb: Pass esc_html_hl_regions() options to esc_html() Michał Kiedrowicz
2012-04-04 19:57 ` [PATCH v3 4/8] gitweb: Extract print_sidebyside_diff_lines() Michał Kiedrowicz
2012-04-04 21:47 ` Junio C Hamano
2012-04-04 22:47 ` Jakub Narebski [this message]
2012-04-05 6:06 ` Michal Kiedrowicz
2012-04-05 22:57 ` Jakub Narebski
2012-04-06 8:36 ` Michal Kiedrowicz
2012-04-04 19:57 ` [PATCH v3 5/8] gitweb: Use print_diff_chunk() for both side-by-side and inline diffs Michał Kiedrowicz
2012-04-05 23:26 ` Jakub Narebski
2012-04-06 8:34 ` Michal Kiedrowicz
2012-04-04 19:57 ` [PATCH v3 6/8] gitweb: Push formatting diff lines to print_diff_chunk() Michał Kiedrowicz
2012-04-04 19:57 ` [PATCH v3 7/8] gitweb: Highlight interesting parts of diff Michał Kiedrowicz
2012-04-05 6:25 ` Michal Kiedrowicz
2012-04-04 19:57 ` [PATCH v3 8/8] gitweb: Refinement highlightning in combined diffs Michał Kiedrowicz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201204050047.10357.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=michal.kiedrowicz@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).