Jeff King wrote: > On Mon, May 17, 2021 at 12:22:56PM -0500, Felipe Contreras wrote: > > > > > If we must not use @, then I would rather use `master..mybranch`, or > > > > something like that. HEAD seems like a technical accident. But of course > > > > I would prefer HEAD to nothing, because at least it qualifies as an > > > > ending point. > > > > > > I agree that if the purpose is to be illustrative, using shortcuts like > > > "an empty endpoint means HEAD" is not helpful. And likewise for "@"; if > > > you need to have "revision range" defined, there is a good chance that > > > you don't know about shortcuts like "@" either. > > > > But they don't need to know what @ means; it's clearly a shortcut for > > _something_, and that's all they need to know. In fact, I'd say most > > people can quickly realize what a shorcut for it is, which is why it was > > picked by the git project, and many Mercurial projects as well. > > That's my point. It _isn't_ clearly a shortcut for something for all > people. If you are reading the glossary entry for "revision range", you > might not know about the ".." syntax at all. So what does: > > foo..@ > > mean? An ellipsis is a common feature of both human and computer languages... The ... fox jumps ... Is easily understood by most English speakers, so is a, b, c ... z. It is used in math as well 1, 2, 3,..., 100. It's used in computer languages, like Pascal, Modula, Oberon, Ada, Haskell, Perl, Ruby, Swift, Kotlin, F#, and MATLAB. (1..10).each { |i| puts i } I think most readers would infer that a) the starting point is at the left of the ending point b) there's nothing after the ending point. So what could the thing at the right of the starting point, follwing an ellipsis, and not followed by anything else be? I think most people would get it. > I expect most people would figure it out. But if your point is to serve > as documentation, especially for people who do not yet know all of the > concepts, then why not try to reduce the chance of error as much as > possible? We want to minimize the chances of error... up to a point. We also want to be useful. Moreover, most readers don't learn at the speed they read, it takes time, and often practice. Copy-pasting `master..@` to their terminal will most likely work, and with any luck they'll understand it right away. They don't need to understand revision ranges completely when they read the glossary, they just need a brief explanation. [1] https://en.wikipedia.org/wiki/Ellipsis -- Felipe Contreras