Noah Pendleton <noah.pendleton@xxxxxxxxx> writes: > Very good point- I see about 21 call sites for `git_config_pathname`, > plus a few others (`git_config_get_pathname`) that bottom out in the > same function. I could see the utility of optional paths for some of > them: for example, `commit.template`, `core.excludesfile`. Some of the > others seem a little more ambiguous, eg `http.sslcert` probably wants > to always fail in case of missing file. Thanks for already doing initial surveillance. Very useful. > There seems to be a mix of fail-hard on invalid paths, printing a > warning message and skipping, and silently ignoring. > > Hard for me to predict what the least confusing behavior is around > path configuration values, though, so maybe adding support for the > `:(optional)` (and maybe additionally a `:(required)`) tag across the > board to pathname configs is the right move. I originally hoped only ":(optional)" would be necessary, but to keep the continuity in behaviour for those currently that do not die upon seeing a missing file, we probably should treat an unadorned value as asking for the "traditional" behaviour, at least in the shorter term, and allow those users who want to detect typos to tighten the rule using ":(required)". I dunno. > That patch might be beyond what I'm capable of, though I'm happy to > put up a draft that applies it to the original `ignoreRevsFile` case > as a starting point. Thanks for an offer. We are not in a hurry (especially during the pre-release feature freeze), and hopefully this discussion would pique other developers' interest to nudge them to help ;-)