On Tue, Apr 30, 2013 at 12:22 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Duy Nguyen <pclouds@xxxxxxxxx> writes: > >> On Tue, Apr 30, 2013 at 2:35 AM, Felipe Contreras >> <felipe.contreras@xxxxxxxxx> wrote: >>> So we can type '@' instead of 'HEAD@', or rather 'HEAD'. So now we can >>> use 'git show @~1', and all that goody goodness. >> >> I like this. I haven't spent a lot of time on thinking about >> ambiguation. But I think we're safe there. '@' is not overloaded much >> like ':', '^' or '~'. >> >>> This patch allows 'HEAD@' to be the same as 'HEAD@{0}', and similarly with >>> 'master@'. >> >> I'm a bit reluctant to this. It looks like incomplete syntax to me as >> '@' has always been followed by '{'. Can we have the lone '@' candy >> but reject master@ and HEAD@? There's no actual gain in writing >> master@ vs master@{0}. > > Originally I was going to say the same, but after thinking about it > a bit more, I changed my mind. > > If you accept only "@" but not "master@", that behaviour needs a > wrong world model to understand and justify (one of which is "@ is a > synonym for HEAD"). If your rule is "In $anything@{$n}, you can > drop {$n} when $n==0", then HEAD@{0} becomes HEAD@ and master@{0} > becomes master@, and @{0} becomes @ naturally. > > We should make sure that the code rejects "git update-ref @ foo" > because that is "git update-ref @{0} ref", by the way. I didn't > check with Felipe's patch. Hmm, with or without my patch 'git update @ foo' does nothing, same with 'git update blah foo'. No error, no non-zero exit code, just doesn't do anything. >>> +'@':: >>> + '@' alone is a shortcut for 'HEAD' >>> + > > I think this explanation sends a wrong message, hinting as if you > can expect "update-ref @ master", "symbolic-ref @ refs/heads/next" > etc. to do something sensible to HEAD. Why would it? This is Documentation/revisions.txt, 'update-ref' has nothing to do with that. This hints that the user can do "update-ref @" as much as the paragraph below thins that that user can do "update-ref master@{today}". Cheers. -- Felipe Contreras -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html