Hi Junio, On Tue, 25 Aug 2020, Junio C Hamano wrote: > If we were to propose breaking the 12-year old promise to our users > that we will keep "git-foo" binaries on disk where "git --exec-path" > tells them, we first need to gauge how big a population we would be > hurting with such a move. > > So here is a miniseries towards that. The third one hooks to the > codepath in git.c::cmd_main() where av[0] is of "git-foo" form and > we dispatch to "foo" as a builtin command. In the original code, we > will die() if "foo" is not a built-in command in this codepath, so > it is exactly the place we want to catch remaining uses of "git-foo" > invoking built-in commands. > > There are a few legitimate "git-foo" calls made even for built-ins > and those exceptions are marked in the command-list mechanism, which > is shared with the help subsystem. We might want to see if we can > unify this exception list with what we have in the Makefile as > BIN_PROGRAMS and what Dscho introduces as ALL_COMMANDS_TO_INSTALL > in his series. These have large overlaps in what they mean, but > they are not exactly identical. As it happens, I discussed a scenario the other day where dashed invocations might still happen, and the consensus was that nobody looks at the output unless things are broken. So maybe this patch series would be a good first step, but if we truly wanted to break that 12-year old promise, we might need to have another patch on top that _does_ install the dashed commands, but into a subdirectory of `libexec/git-core/` that is only added to the `PATH` when an "escape hatch"-style config setting is set. Ciao, Dscho