Ævar Arnfjörð Bjarmason  <ava...@gmail.com> writes:

> Before this change git will die on any unknown color.ui values:
>
>     $ git -c color.ui=doesnotexist show
>     fatal: bad numeric config value 'doesnotexist' for 'color.ui': invalid 
> unit

I do not think "unit" is correct, so there may be some room for
improvement.  For _this_ particular case, I agree that it is not the
end of the world if we did not color the output (because we do not
know what the 'doesnotyetexist' token from the future is trying to
tell us), but as a general principle, we should diagnose and die, if
a misconfiguration is easy to correct, than blindly go ahead and do
random things that the end-user did not expect by giving something
we do not (but they thought they do) understand.

If we really want to introduce "here is a setting you may not
understand, in which case you may safely ignore", the right way to
do so is to follow the model the index extension took, where from
the syntax of the unknown thing an old/existing code can tell if it
is optional.  Forcing all codepaths to forever ignore what they do
not understand and what they happen to think is a safe fallback is
simply being irresponsible---the existing code does not understand
the new setting so they do not even know if their "current
behaviour" as a fallback is a safe and sensible one from the point
of view of the person who asked for the feature from the future.

Reply via email to