From: Taylor Blau Date: Mon, 05 Aug 2024 19:46:42 GMT Subject: Re: [PATCH] config.c: avoid segfault with --fixed-value and valueless config Message-ID: In-Reply-To: On Mon, Aug 05, 2024 at 08:45:32AM -0700, Junio C Hamano wrote: > Patrick Steinhardt writes: > > > Edge cases like this really make me wonder what the benefit of implicit > > bools is in our config files. > > > > So... why do we have them in the first place? Is there even a single > > good reason? > > There isn't any good reason to introduce such a syntax if we were > desigining the configuration file format from scratch. It was added > because originally Linus thought it was a cute syntax, and these > days a lot lot more importantly, it is kept working because you will > break a lot of existing configuration files that were hand tweaked > if you remove the support suddenly. I agree. It's perhaps interesting to think about in the context of the discussion in [1], but I think also worth having some perspective above. Sure, this configuration syntax would not be invented anew today, but I also don't think it's worth breaking existing configurations, even in a hypothetical "Git 3.0" release. In some sense I am sympathetic to Patrick's argument, but I also think that having a bug in a relatively niche feature like --fixed-value that wasn't noticed for almost four years over 17 [2] releases isn't itself a strong argument for removing the feature. Thanks, Taylor [1]: [2]: $ git tag --contains c90702a1f6 'v2.*.0' | wc -l