On Tue, Mar 01 2022, Junio C Hamano wrote: > The array of options given to the parse-options API is sanity > checked for reuse of a single-letter option for multiple entries and > other programmer mistakes by calling parse_options_check() from > parse_options_start(). This allows our developers to catch silly > mistakes early, but all callers of parse-options API pays this cost. > Once the set of options in an array is validated and passes this > check, until a programmer modifies the array, there is no way for it > to fail the check, which is wasteful. That's not true due to the "git rev-parse --parseopt" interface. I'd be happy to deprecate it, but I think the last time I brought it up you were opposed, i.e. it's documented as plumbing in "git-rev-parse", and it's easy to have it hit some of these BUG()'s. I see the benifit of Johannes's suggestion of checking this once (but with t0012-help.sh etc. we're nowhere near being able to do that). Now this runs for the whole test suite, so our tests will have the the same behavior. So it's just an optimization? Isn't it premature, if you run parse_options_check() in a loop how many checks/sec can we do? I haven't tested, but I'm betting it's a *lot*. So aren't we shaving microseconds off the runtime here?