Re: [PATCH] Add the diff option --no-defaults
From: Keith Cascio <hidden>
Date: 2016-06-15 22:46:37
Dscho, On Sat, 18 Apr 2009, Johannes Schindelin wrote:
On Sat, 18 Apr 2009, Keith Cascio wrote:quoted
On Fri, 17 Apr 2009, Johannes Schindelin wrote:quoted
Besides, you still will have a poison: git config diff.defaultOptions --no-defaults which is Russel's paradoxon right there.I can cleanly modify my v3 to handle this case.You cannot. --no-defaults means that diff.defaultOptions should be disregarded. If the diff.defaultOptions say that they should be disregarded themselves, then --no-defaults should be disregarded.
--no-defaults *could* mean as you say there. But a much better meaning for --no-defaults is: suppress the values in diff.defaultOptions after options processing. We don't have to disregard them, just suppress them after options processing. In that sense, --no-defaults is a meta-option. It is an option about options. Even users unfamiliar with set theory would assume the suppression semantics. Nevertheless I applaud the Russell reference. Very intriguing.
And I still do not like the intrusiveness of your patch. The last time we did something like that with options (some parseoptifications), we had a lot of fallout as a consequence.
A reasonable worry! But blind paranoia is paralyzing. Peff expressed some
specific concerns which he and I addressed: (1) whether I'd investigated all
callsites for possible problems (yes I did), (2) whether we'd have to switch
every callsite to a macro, rather than direct assignment (no we don't).
Outside of diff.h/diff.c, my v3 deletes no lines and adds only two. That
doesn't really seem "intrusive" to me. By comparison, your patch adds at least
ten lines outside of diff.h/diff.c. I'd rather call my patch "innovative".
Possible?
-- Keith