Subject: RE: [PATCH 5/5] config: add default aliases

From: "Randall S. Becker" <[email-masked]>
Date: Fri, 2 Jul 2021 09:26:30 -0400

On July 2, 2021 7:15 AM, martin wrote:
>On 02/07/2021 12:54, Felipe Contreras wrote:
>> martin wrote:
>>> IMHO it would be good to (partly) follow other vcs, and have commit =
>>> ci
>> I'm fine with leaving co out of the default aliases if it's deemed
>> "too controversial".
>>
>> But ci doesn't make sense. ci comes from "check in" which has no
>> similitude in git.
>svn uses it for "commit".
>It can be seen as CommIt.
>
>But of course other letters can be picked. I don't see an advantage in it though.
>Like CoMmit cm ? or CommiT ct ? None of them seems any better to me.
>
>> I don't think it's a good idea to leave "git checkout" without an
>> alias (it's perhaps the second or third most used command), but at
>> least some aliases are better than no aliases.
>Well, that goes back to a bigger question. And from the brief time I have been on this mail list, it appears to me there is a divide into 2
>groups.
>
>If checkout is really meant to give way to switch/restore then it needs no further advertising. And then the current usage statistics are a
>relict from the before switch/restore time.
>
>If on the other hand checkout is not just to be kept for backward compatibility, but should always remain an equal alternative to
>switch/restore (i.e. it should still be taught to new user in 20 years) then it wants to have a default alias.

In my opinion, default aliases are not a good path. If a command is intended to be part of the git command set, then it should be a builtin not an alias. Users have their own alias setups and implied conflicts are just going to be confusing and end up in help, examples, presentations, and so forth.

If you want a default alias set, publish it as part of an extension set, like the bash-completion, so that the user has to take action to install them in their environment. Do not do this in the base git product by default.

Further, if you are deprecating a command like checkout (which I know is not happening), then the command should go away rather than become an alias, unless a specific user wants to include this. That's what deprecation is. Keeping it around as an alias means you are keeping it around as a command, just providing a new access path.

If I was a committer on this project, I would have to be much more convinced that there is long-term value in this series than appears on the surface.

I am sorry if I am coming across too strongly on this subject, but I do think we are overloading alias capability and intruding on a domain that should be reserved for our users, not ourselves.

Sincerely,
Randall