Re: [PATCH v2 5/6] Add new @ shortcut for HEAD
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:57:07
Duy Nguyen [off-list ref] writes:
On Wed, May 1, 2013 at 4:49 AM, Felipe Contreras [off-list ref] wrote:quoted
So HEAD@{0}~0^0 is too much to type, but we can remove '^0', and we can remove '~0', and we can remove 'HEAD', which leaves us with @{0}, but we can't remove '{0}'? This patch allows '@' to be the same as 'HEAD'. So now we can use 'git show @~1', and all that goody goodness. Until now '@' was a valid name, but it conflicts with this idea, so lets make it invalid. Very few people if any probably used this name, if they did, they can rename it by using the full-path (e.g. refs/heads/@).People can write master short for refs/heads/master, but can't with refs/heads/@.
Is it a new problem? You can not say HEAD to refer to refs/heads/HEAD, either. To avoid confusion, we teach "git branch HEAD $commit" to error out (but it seems that "git checkout -b HEAD $commit" does not). We probably would want to do the same for '@' when we refactor to have a central place that knows what the "make sense as refnames at the syntactic level, but are forbidden for operational purposes" branch names are. And use it to update "git checkout -b".