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

Re: git-diff: must --exit-code work with --ignore* options?

From
Thell Fowler <git@tbfowler.name>
Date
Sep 8, 2009, 20:58 UTC
Message-ID
<alpine.WNT.2.00.0909081457190.3732@GWNotebook>
In-Reply-To
<7vljl1dpud.fsf@alter.siamese.dyndns.org>
On Sun, 30 Aug 2009, Junio C Hamano wrote:
Show 25 quoted lines
> Jim Meyering <jim@meyering.net> writes:
>
>> Junio C Hamano wrote:
>> ...
>>> Subject: [PATCH] diff --quiet: special case "ignore whitespace" options
>>> ...
>>> Change the semantics of --ignore-whitespace* options to mean more than
>>> "omit showing the difference in text".  When these options are used, the
>>> internal "quick" optimization is turned off, and the status reported with
>>> the --exit-code option will now match if any the textual diff output is
>>> actually produced.
>>>
>>> Also rename the internal option "QUIET" to "QUICK" to better reflect what
>>> its true purpose is.
>>
>> Thanks again.
>> If there's anything I can to do help (add a test?), let me know.
>
> The change has been cooking in 'next' and hopefully be in 1.7.0.  I think
> the updated series adds its own test script, too.
>
> Using it in every day scenario, and reporting any breakage you notice
> before 1.7.0 happens, would be greatly appreciated.
>
> Thanks.

Perhaps I'm expected something different than what I _should_ be expecting, but shouldn't --quiet always return the same as --exit-code?

# Cut/Paste example mkdir test_ws_quiet && cd test_ws_quiet && git init printf "foo bar \n\n" >f1.txt git add . git commit -m 'f text' printf "foo bar\n\n" >f1.txt git commit -a -m 'f with diff white-space in middle & end' git diff -w --exit-code HEAD^ >/dev/null echo $? # returns '0' which it should git diff -w --quiet HEAD^ echo $? # returns '0' which it should git diff -b --exit-code HEAD^ >/dev/null echo $? # returns '0' which it should git diff -b --quiet HEAD^ >/dev/null echo $? # returns '0' which it should git diff --ignore-space-at-eol --exit-code HEAD^ >/dev/null echo $? # returns '1' which it should git diff --ignore-space-at-eol --quiet HEAD^ echo $? #returns '0' <=== Unexpected.

# # Next phase # printf "foobar\n\n">f1.txt git commit -a -m 'f without any spaces' git diff -w --exit-code HEAD^ >/dev/null echo $? # returns '0' which it should git diff -w --quiet HEAD^ echo $? # returns '0' which it should git diff -b --exit-code HEAD^ >/dev/null echo $? # returns '1' which it should git diff -b --quiet HEAD^ >/dev/null echo $? # returns '0' <=== Unexpected git diff --ignore-space-at-eol --exit-code HEAD^ >/dev/null echo $? # returns '1' which it should git diff --ignore-space-at-eol --quiet HEAD^ echo $? #returns '0' <=== Unexpected.

-- 
Thell
Previous: Jim Meyering
Message 9 of 9 in “git-diff: must --exit-code work with --ignore* options?”
  1. Jim MeyeringMay 22, 2009
  2. Junio C HamanoMay 22, 2009
  3. Jim MeyeringMay 22, 2009
  4. Junio C HamanoMay 22, 2009
  5. Jim MeyeringMay 23, 2009
  6. Jim MeyeringAug 30, 2009
  7. Junio C HamanoAug 30, 2009
  8. Jim MeyeringAug 30, 2009
  9. Thell FowlerSep 8, 2009

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.