While looking carefully at various config callbacks for the series at: https://lore.kernel.org/git/20231207071030.GA1275835@xxxxxxxxxxxxxxxxxxxxxxx/ I noticed a bunch of other small bugs/cleanups. I split these into their own series here, which should be applied on top (it could go straight to "master", but there is a small conflict in patch 6, as the option it touches was fixed in the other series). I'm happy to prepare it as an independent series if we prefer. [1/9]: config: reject bogus values for core.checkstat [2/9]: git_xmerge_config(): prefer error() to die() [3/9]: imap-send: don't use git_die_config() inside callback [4/9]: config: use config_error_nonbool() instead of custom messages [5/9]: diff: give more detailed messages for bogus diff.* config [6/9]: config: use git_config_string() for core.checkRoundTripEncoding [7/9]: push: drop confusing configset/callback redundancy [8/9]: gpg-interface: drop pointless config_error_nonbool() checks [9/9]: sequencer: simplify away extra git_config_string() call builtin/push.c | 31 +++++++++++++------------------ builtin/send-pack.c | 27 ++++++++++++--------------- config.c | 11 +++++------ convert.h | 2 +- diff.c | 8 ++++++-- environment.c | 2 +- gpg-interface.c | 15 +++------------ imap-send.c | 2 +- merge-ll.c | 2 +- sequencer.c | 21 ++++++++------------- xdiff-interface.c | 7 ++++--- 11 files changed, 55 insertions(+), 73 deletions(-) -Peff