On Fri, Mar 16 2018, Johannes Schindelin jotted: > Hi Linus. > > On Thu, 15 Mar 2018, Linus Torvalds wrote: > >> We do end up still using the dashed form for certain things, but they >> are already special-cased (ie things like "git-receive-pack" and >> "git-shell" that very much get executed directly, and for fundamental >> reasons). > > Please do elaborate. If you were to set set "/bin/git shell" in /etc/password it would not do the right thing as far as I know. Is that a shell name with a space in it, or the "shell" argument to /bin/git? There's also the fully dashed forms of stuff like git-receive-pack is part of the over-ssh convention, i.e.: ssh <host> git-upload-pack ... That being said I think Linus is conflating two things here. If we still had just the dashed forms on *nix we'd still have the issue of what it does to shell completion, which is one thing that got brought up in the discussion to create the "git" wrapper at the time. There were also other reasons IIRC. That's an entirely separate discussion from how we go about either hard- or symlinking some stuff git is using, whether or not that's ever directly exposed to the user. Having said that I have a WIP re-roll which where I'm aiming to: * Add a NO_INSTALL_CP_FALLBACK flag, so we won't implicitly fall back to cp silently (unless told so) * Remove the 2>/dev/null we're doing on everything. That pre-dates the NO_*_*HARDLINKS flags and we shouldn't be doing that anymore. * Add an option where we optionally won't install the majority of these dashed forms, regardless of whether we choose hardlinks or symlinks. We'll still need some linking as some dashed forms we can't remove, as noted above. I didn't expect Junio to merge this down to `next` so fast, so I'll wait until INSTALL_SYMLINKS lands. As far as I know the code as-is in next isn't buggy, I'd just like to improve it a bit more, so I'll need to rebase what I have on top of that (which is fine).