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

From: Felipe Contreras <[email-masked]>
Date: Fri, 02 Jul 2021 17:31:43 -0500

Randall S. Becker wrote:
> On July 2, 2021 5:02 PM, Felipe Contreras wrote:
> >To: Randall S. Becker <[email-masked]>; 'martin' <[email-masked]>; 'Felipe Contreras' <[email-masked]>;
> >'Andreas Schwab' <[email-masked]>
> >Cc: [email-masked]; 'Ævar Arnfjörð Bjarmason' <[email-masked]>; 'Junio C Hamano' <[email-masked]>
> >Subject: RE: [PATCH 5/5] config: add default aliases
> >
> >Randall S. Becker wrote:
> >
> >> 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.
> >
> >Commands cannot be overriden, aliases can.
> >
> >All SCM projects have aliases, except git. Why do you think that is?
> 
> I do not think my intent was conveyed. Default aliases made by the
> product provider, regardless of who that is, are not a good path.

Why?

> If I was RCS, I would not make an alias that everyone had to take.

Nobody has to take them.

> Same for git. git has aliases, but they are for the user. If the
> end-user team wants to implement a particular set of primitives for
> their environment, that's fantastic, and entirely possible in git. But
> I do not want to be constrained by someone else's primitives that are
> not core product.

Nobody is constrained.

> >> 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.
> >
> >There's no conflict. Either you use the alias or you don't. Just like today.
> 
> Then what is the point of this? I want my aliases, not someone else's.

Then use your aliases. This patch is not for you.

> Again, if it is a core git alias, it is not an alias, it is a
> supported command and I should see it in the git help -a output.

A core git alias is an alias, and you will see them in the `git help -a`
output, in the aliases section.

> >> 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.
> >
> >The whole point is to help users so they don't have to do extra configurations.
> 
> The whole point is that a user team should give thought to the
> functional extensions they want, as a team, which is where aliases
> come in.

Once again, this patch doesn't prevent anyone from doing anything.

> We, as git contributors, should not be telling them what their extensions are.

We are not.

> >Today git is pretty much unbearable without a configuration. Default aliases would help quell some of that pain.
> 
> Git is entirely bearable particularly in my own pons and medulla.

Good. But you are not the average user.

> >> 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.
> >
> > 1. It doesn't affect anyone negatively
> > 2. You don't have to use them if you don't want to  3. They don't affect your aliases, even if they have the same name  4. Everyone has
> >aliases  5. Every SCM in history has had aliases
> >
> >What more would you need?
> >
> >> 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.
> >
> >But why? We provide plenty of defaults so that users don't have to configure git in order for the program to be useful. And we will
> >continue to add more defaults.
> 
> I remain unconvinced and I found the assertion #5 somewhat specious
> and incorrect. SCCS and RCS use Shell aliases.

> There are no aliases in ClearCase.

Yes there are [1]:

  checkout | co [ –res/erved ] [–unr/eserved [ –nma/ ster ] ]

> Granted Perforce has them, but that is not a sufficient differentiator
> to use that over git by any stretch.

All the popular SCMs have them:

 * Mercurial
 * Subversion
 * CVS
 * Clearcase
 * Perforce

> I've expressed my opinion, and it's not my decision to adopt this. So
> whatever happens, as long as it does not pollute my community's
> expectation of git. Although, providing aliases will handcuff future
> command naming.

That's not true. Nothing is handcuffed.

[1] https://www.ibm.com/docs/en/rational-clearcase/9.0.0?topic=ucm-checkout

-- 
Felipe Contreras