Re: [PATCH] Add the diff option --no-defaults
- From
Keith Cascio <keith@cs.ucla.edu>
- Date
- Apr 18, 2009, 20:32 UTC
- Message-ID
- <alpine.GSO.2.00.0904181308440.16775@kiwi.cs.ucla.edu>
- In-Reply-To
- <alpine.DEB.1.00.0904181937520.10279@pacific.mpi-cbg.de>
Dscho,
On Sat, 18 Apr 2009, Johannes Schindelin wrote:
Show 13 quoted lines
> On Sat, 18 Apr 2009, Keith Cascio wrote: > > > On Fri, 17 Apr 2009, Johannes Schindelin wrote: > > > > > 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