git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Workaround for strange cmp bug

From
Junio C Hamano <junkio@cox.net>
Date
Aug 9, 2006, 10:50 UTC
Message-ID
<7v3bc65gk0.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.63.0608091221550.1800@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 15 quoted lines
> The cmp(1) (cmp (GNU diffutils) 2.8.7) distributed with openSUSE 10.1 has
> a subtle "shortcoming":
>
> 	$ echo a > a
> 	$ echo b > b
> 	$ cmp a b && echo nonono
> 	a b differ: char 1, line 1
> 	$ cmp a b >/dev/null && echo nonono
> 	nonono
> 	$ cmp -s a b >/dev/null && echo nonono
>
> So, if cmp should _not_ be quiet, _and_ the output is redirected to
> /dev/null, it has a bogus exit value. Our test suite redirects to
> /dev/null, which triggers that bug. (Obviously, the tests pass when
> running with '-v', which made that a real bugger to debug.)

While I sympathize unfortunate users who are stuck with such a broken implementation of an important basic tool, such a rewrite unnecessarily makes debugging of both test scripts _and_ real breakage harder.

It actually is very useful, in the chain of &&, to see that these steps in our tests output something when they shouldn't when the tests are run under -v; you may have noticed that the tests written by me have seemingly useless "echo happy" (which always returns true) and such, and they are there for a reason.

Please get the distribution fixed.
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 2 of 5 in “Workaround for strange cmp bug”
  1. Workaround for strange cmp bugJohannes Schindelin, Aug 9, 2006
  2. Junio C HamanoAug 9, 2006
  3. Johannes SchindelinAug 9, 2006
  4. Johannes SchindelinAug 9, 2006
  5. Johannes SchindelinAug 10, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.