Nathaniel Manista <nathaniel@xxxxxxxxxx> writes: > If we say that we would like to eventually live in a world in which a > user's time zones are not recorded until after that user deliberately opts > into git recording zir time zones, does that point us toward an eventual > destination of "users who don't wish to record their time zones don't have > to do anything to their .gitconfigs, and users who do wish to record their > time zones only have to write one line in their .gitconfigs"? If that's the > case, ought that one line that some users choose to write be targeted to be > "recordTimeZone = true" rather than anything else (particularly rather than > "hideTimeZone = false")? If all that holds, does > > today: introduce recordTimeZone with a default of true and advertise its > existence so that those users who have feelings one way or the other on the > matter may explicitly set it to one value or the other > six months from today: flip recordTimeZone's default from true to false > > look like a plausible sketch of how to get to the desired future state? > > What am I missing (and 🤞 that my "if"s hold too...)? Since it is perfectly OK to have a configuration variable whose default value is 'true', the choice between the world in which times are by default hidden and the opposite world does not affect which way the configuration variable should be named and defined at all. The system could hide zone when there is no user.hideTimeZone configured, and those who think that the value of giving others a useful bit of info outweighs the value of hiding their own zone can set it explicitly to 'false' to expose their zone. Or the system could record zone when there is no user.recordTimeZone configured, and you can set it explicitly to 'false' if you think if it is more valuable to omit your zone from the commit than recording the zone in which the commit was written. Either way, we can make the system to "do what the majority of users want, with an escape hatch to protect monority"; the naming does not affect it in any way. The only thing we should consider when naming, therefore, is how clearly the name conveys the semantics. And from that point of view, user.hideTimeZone=yes is a mistake. It can be mistaken as if we do record but simply choose not to show at time of the output. Contrast that with user.recordTimeZone=no which has no such room for confusion. If we are not recording, there is nothing clever to be done when showing. FWIW, I am not in favor of dropping info by default myself, but that is outside the scope of this message.