Junio C Hamano wrote: > Jim Meyering <jim@xxxxxxxxxxxx> writes: >> Junio C Hamano wrote: >>> Jim Meyering <jim@xxxxxxxxxxxx> writes: >>>> >>>> # do this in an empty directory >>>> $ git init -q; echo>k; git add .; git commit -q -m. .; echo \ >k >>>> $ git diff --ignore-space-at-eol --quiet || echo bad >>>> bad >>> >>> I am slightly torn about this, in that I can picture myself saying that >>> this is unintuitive on some different days, but not today ;-) >> >> Thanks for the quick reply. Here's why I noticed: >> ... > > It seems that today is already "some different day" ;-) We could do > something like this patch. > > While in the longer term I think it may make the world a better place by > being more consistent with what users expect, I am not sure at what > revision boundary we should introduce such a semantic change. > > We could always declare this a bug and apply the "fix" at any time. It's > all perception ;-). > > -- >8 -- > Subject: [PATCH] diff --quiet: special case "ignore whitespace" options > > The option "QUIET" primarily meant "find if we have _any_ difference as > quick as possible and report", which means we often do not even have to > look at blobs if we know the trees are different by looking at the higher > level (e.g. "diff-tree A B"). As a side effect, because there is no point > showing one change that we happened to have found first, it also enables > NO_OUTPUT and EXIT_WITH_STATUS options, making the end result look quiet. > > Traditionally, the --ignore-whitespace* options have merely meant to tell > the diff output routine that some class of differences are not worth > showing in the textual diff output, so that the end user has easier time > to review the remaining (presumably more meaningful) changes. These > options never affected the outcome of the command, given as the exit > status when the --exit-code option was in effect (either directly or > indirectly). > > These two classes of options are incompatible. When you have only > whitespace changes, you would expect: > > git diff -b --quiet > > to report that there is _no_ change. This is unfortunately not the case, > however, if there are differences to be reported if the command was run > without --quiet; there _is_ a change, and the command still exits with > non-zero status. > > And that is wrong. > > 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. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html