"Francis Moreau" <francis.moro@xxxxxxxxx> writes: > On 3/26/07, Junio C Hamano <junkio@xxxxxxx> wrote: >> > [alias] >> > send-email = send-email --no-signed-off-cc --suppress-from >> > >> > Is it failing because git-send-email is an external command ? >> >> $ sed -ne '/^alias\.\*/,/^$/p' Documentation/config.txt > > That said I think it's not really convenient. I'll end up doing: > > [aliases] > my-send-email = send-email --no-signed-off-cc --suppress-from > my-am = am -3 -s > > etc... > > Isn't possible to mimic bash alias handling:. From man: "Aliases are > not expanded when the shell is not interactive,... " > > IOW is it possible for git to know if it has been invoked interactively ? I do not think so, but I think alias expanding "git foo" while not expanding "git-foo" should not be too hard. You need two extra preparation steps for such a change to be useful, though. (1) Build with $(gitexecdir) set to outside the usual $PATH (/usr/libexec/git was suggested in the past) to make sure we still support that configuration. Under this model, only a handful programs ("git" wrapper itself and "gitk") should be installed on user's PATH and everything else goes under $(gitexecdir). The user's interactive session MUST run "git foo" and not "git-foo" as bulk of the stuff is now outside of $PATH. Fix any breakage if found (I do not expect many, but there might be some problems around object transfers, such as git-daemon spawning git-upload-pack, or git-push running git-receive-pack on the other end of the connection). (2) Audit all our scripts so that they run git commands with "git-foo" form, not "git foo" form. As "git" wrapper is supposed to add $(gitexecdir) early in the $PATH while it runs itself and its subprocesses, they should find the true "git-foo" binary even after $(gitexecdir) is set outside of the usual $PATH. Make sure things still work. After the above two steps is done, we can be confident that the scripts will not be broken even if we allow a user to say something silly like "alias.cat-file = log --stat", as the scripts will never say "git cat-file" to cause the command to be expanded to "git log --stat" (instead they say "git-cat-file", thanks to your audit in step (2)), thusly avoid the confusion. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html