Hi Junio, On Wed, 14 Mar 2018, Junio C Hamano wrote: > Ævar Arnfjörð Bjarmason writes: > > > Is the only reason we're still installing these binaries like git-add in > > libexec for compatibility with some old installation where that was > > added to the $PATH, shouldn't we (and I can write this patch) also have > > a toggle for "I want the modern install method" which would not install > > any of these binaries like git-add at all? > > > > Then the libexec/ dir would only contain things that we really do need > > the bin/git to dispatch to, like git-svn, git-bisect etc. > > Removing them by default was proposed and failed; see this thread > for example: > > https://public-inbox.org/git/7vr68b8q9p.fsf@gitster.siamese.dyndns.org/#t Let's add a very, very important piece of information that was missing: this thread is from late August 2008. We had deprecated the dashed form "only for a couple of months" by then (we removed the dashed form from the completions end of April 2008 in 799596a5d06 (completion: remove use of dashed git commands, 2008-04-20) for example). > If a packager ships Git without these copies in libexec, that is not > the Git that promised users that prepending the $(git --exec-path) > aka GIT_EXEC_PATH to your $PATH is a valid way to preserve their > older script. > > I do not think anybody actually minds to have an option to omit them > as long as the users understand the consequence (i.e. old promises > broken) and know they are not affected (i.e. they do not have > scripts that rely on the old promise). I am glad that you changed your stance from "without dashed builtins, your Git is broken" to this much more tenable position to state that it may break super-old promises whose use we discouraged already a full decade ago. To add some interesting information to this: in MinGit (the light-weight "Git for applications" we bundle to avoid adding a hefty 230MB to any application that wants to bundle Git for Windows), we simply ignored that old promise. We do support hooks written as Unix shell scripts in MinGit, and we have not had a single report since offering MinGit with v2.9.2 on July 16th, 2016, that it broke anybody's scripts, so it seems that users are more sensible than our promises ;-) Not requiring Git to install any type of link makes it even possible to bundle it as .zip file (which, let's face it, is the de facto standard for cross-platform archiving). Ciao, Dscho