Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Jun 2012 19:50:13 GMT
From:      Garrett Cooper <yanegomi@gmail.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/169274: [patch] diff exit code always reports "trouble" when there are differences between 2 files
Message-ID:  <201206201950.q5KJoDxP019174@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/169274; it has been noted by GNATS.

From: Garrett Cooper <yanegomi@gmail.com>
To: Xin LI <delphij@gmail.com>
Cc: freebsd-gnats-submit@freebsd.org
Subject: Re: bin/169274: [patch] diff exit code always reports "trouble" when
 there are differences between 2 files
Date: Wed, 20 Jun 2012 12:44:04 -0700

 On Wed, Jun 20, 2012 at 12:34 PM, Garrett Cooper <yanegomi@gmail.com> wrote=
 :
 > On Wed, Jun 20, 2012 at 12:13 PM, Xin LI <delphij@gmail.com> wrote:
 >>> $ diff valid.output unittest.dip >/dev/null
 >>> $ echo $?
 >>> 2
 >>
 >> I tried a few possible permutations and got expected result (when file
 >> is not accessible I got 2, and otherwise 1), except the case that one
 >> file is binary. =A0It's not clear to me whether this is a bug or a
 >> feature, as our diff(1) does not have a RETURN VALUE section.
 >
 > This is what I was referring to:
 >
 > =A0 =A0 =A0 FILES =A0are =A0`FILE1 =A0FILE2' =A0or `DIR1 DIR2' or `DIR FI=
 LE...' or `FILE...
 > =A0 =A0 =A0 DIR'. =A0If --from-file or --to-file is given, there are no =
 =A0restrictions
 > =A0 =A0 =A0 on =A0FILES. =A0If a FILE is `-', read standard input. =A0Exi=
 t status is 0 if
 > =A0 =A0 =A0 inputs are the same, 1 if different, 2 if trouble.
 >
 > The definition of "trouble" here is unnecessarily ambiguous. I
 > interpret trouble to be:
 > 1. open failure.
 > 2. stat failure.
 > 3. read failure.
 > etc.
 >
 > Comparing a binary file and text file does not constitute "trouble" --
 > they're just different.
 >
 > It concerns me because there's a fine line -- in some cases -- between
 > binary and text files, depending on the content in the file (I'm
 > thinking of .shar files for instance or uuencoded scripts).
 >
 >> With your proposed change, diff no longer distinguishes "trouble outputt=
 ing
 >> the diff because at least one file is binary and you don't know it"
 >> and "I know it's binary (--brief) or I know what I am doing (--text),
 >> just let me know if there is difference", which sounds like a
 >> regression IMHO.
 >
 > Ok. That was the difference (binary vs text):
 >
 > $ file valid.output unittest.dip
 > valid.output: ASCII text
 > unittest.dip: data
 >
 > Where is that requirement mentioned in the manpage though? I can't
 > find it in the GNU diffutils manpage.
 >
 > If this is a BSD diff requirement, then it's doing something clearly
 > different from GNU diff implementation. Whether or not the BSD
 > implementation has to conform is another thing entirely, but it would
 > be nice to keep the inconsistencies down to a minimum if at all
 > possible.
 
 Classic Garrett and screwing up context -- there's only one diff in
 base and it's GNU diff.
 
 Thanks,
 -Garrett



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206201950.q5KJoDxP019174>