Subject: bug#18076: closed (Re: [bug-diffutils] bug#18076: Lines are not ignored by option -I if they are followed by a line with a difference)

From: Jean-Francois Thuong <[email-masked]>
Date: Wed, 23 Jul 2014 15:52:44 +0800

Hello Eric,

Thank you for the tweak using sed; I suppose a similar "grep" would work as
well?

May i enter a request for enhancement with a suggestion to add this new
function enabling the filter of ignored lines from hunks containing
differences?

> *The information transmitted is intended only for the person or entity to
> Sorry, but such disclaimers are unenforceable on publicly-archived
> mailing lists.  You may want to consider sending from a personal account
> in the future, rather than slamming the list with your employer's
> legalese spam.

My bad. I unfortunately had to send the request from the company email
because this bug report was part of our process of the qualification of GNU
Diff 2.8.7.

Jean-Francois Thuong

On Wed, Jul 23, 2014 at 1:00 AM, GNU bug Tracking System <
[email-masked]> wrote:

> Your bug report
>
> #18076: Lines are not ignored by option -I if they are followed by a line
> with a difference
>
> which was filed against the diffutils package, has been closed.
>
> The explanation is attached below, along with your original report.
> If you require more details, please reply to [email-masked].
>
> --
> 18076: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18076
> GNU Bug Tracking System
> Contact [email-masked] with problems
>
>
> ---------- Forwarded message ----------
> From: Eric Blake <[email-masked]>
> To: Jean-Francois Thuong <[email-masked]>,
> [email-masked]
> Cc:
> Date: Tue, 22 Jul 2014 10:58:58 -0600
> Subject: Re: [bug-diffutils] bug#18076: Lines are not ignored by option -I
> if they are followed by a line with a difference
> tag 18076 notabug
> thanks
>
> On 07/22/2014 12:59 AM, Jean-Francois Thuong wrote:
>
> > To reproduce:
> > 1. Create 2 files (e.g. File1.txt and File2.txt) having 2 consecutive
> > different lines (e.g. lines 2 and 3)
> > 2. Run diff with option -I including a pattern matching line 2
> > 3. Observe that diff returns differences for both lines 2 and 3
>
> Thanks for the report.  However, this is not a bug, but documented
> behavior.  -I only suppresses entire hunks where EVERY difference in the
> hunk matches the regex.
>
> The mode of operation you are requesting, where diff ignores lines that
> match the regex prior to doing the comparison (although line numbers are
> then a bit off), can be accomplished via this trick in bash:
>
> patt='^IGNORE:'
> diff <(sed "/$patt/d" File1.txt) <(sed "/$patt/d" File2.txt)
>
> Maybe it's worth a new option to diff to allow this mode of operation by
> default (and so that line numbers are still accurate); but -I cannot be
> changed semantics to match that new option.
>
> I'm closing this report as we are matching our documentation, although
> we can reopen it if someone is interested in writing a patch for such a
> new option.
>
> > *The information transmitted is intended only for the person or entity to
>
> Sorry, but such disclaimers are unenforceable on publicly-archived
> mailing lists.  You may want to consider sending from a personal account
> in the future, rather than slamming the list with your employer's
> legalese spam.
>
> --
> Eric Blake   eblake redhat com    +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
>
>
>
> ---------- Forwarded message ----------
> From: Jean-Francois Thuong <[email-masked]>
> To: [email-masked]
> Cc:
> Date: Tue, 22 Jul 2014 14:59:43 +0800
> Subject: Lines are not ignored by option -I if they are followed by a line
> with a difference
> Package: diffutils
> Version: 3.3
>
> When 2 (or more) consecutive lines are different between the two compared
> files, they are ignored by option -I if all of them are ignored; if the
> last line is not ignored, all the lines are returned by diff tool (instead
> of only the last line).
>
> Although the documentation clearly indicates this as nominal, it looks
> strange while looking at the results to have lines that we supposed to have
> been ignored.
>
>
> ------------------
> To reproduce:
> 1. Create 2 files (e.g. File1.txt and File2.txt) having 2 consecutive
> different lines (e.g. lines 2 and 3)
> 2. Run diff with option -I including a pattern matching line 2
> 3. Observe that diff returns differences for both lines 2 and 3
>
>
> Note: the files attached could be used as an example with the command line
> diff -I "^IGNORE:.*quot; File1.txt File2.txt
> The difference is as follows:
> 2,3c2,3
> < IGNORE: Line to be ignored with value = 1
> < Different line (version A)
> ---
> > IGNORE: Line to be ignored with value = 2
> > Different line (version B)
>
>