On Thu, 29 Nov 2007, Jeff King wrote:
I thought Linus' point was that moving the subcommands was sufficient
for dealing with the consistency issue (i.e., all scripts would move to
"git foo" and only those people who really wanted to would put the
dashed forms in their path).
Yes. I meant that we might as well keep all the git-xyz forms around, but
_only_ in the libexec directory (and make sure that the libexec directory
by default is *not* a binary directory), so that they'd normally not be
visible.
So then, people who want to use the old-fashioned git-xyz forms, because
they just really hate white-space or whatever, could choose to do one of
two things:
- either just change the default libexec directory to be the same as the
binary install directory, and have all the git-xyz things in the same
place they've always been.
- or just add $(gitlibexec) into their path.
but the default (which is what 99% of all people use) would be to not
show them. I also think that it makes sense to avoid wasting diskspace
with duplicate files, so in situations where you don't have hardlinks,
just don't install the git-xyz files at all by default (and again, maybe
we can have a option to the installer to do it for people who really are
very attached to the git-xyz format, and prefer to waste even a lot of
disk on it)
So I just think that the whole idiotic complaint that some people have
(that whole "git-<tab><tab>" shows "Display all 144 possibilities?" and
people are somehow using that as an argument that git is "complex") should
be something we strive to undo. I think the complaint is insane (because
the answer is "well, nobody forces you to _use_ all the power and scripts
we give you!"), but still, it's a complaint, so let's just assume the user
is right, and try to fix it.
So when you do "git-<tab><tab>" it should just beep at you and not show
anything at all by default. And when you do "git <tab><tab>", we should
make sure that the bash expansion (or zsh or whatever) shows a nice
collection of common plumbing, not soemthing really scary.
Linus