Hi,
On Mon, 5 Feb 2007, Shawn O. Pearce wrote:
Johannes Schindelin [off-list ref] wrote:
quoted
On Fri, 2 Feb 2007, Lars Hjemli wrote:
quoted
I think the following makes perfect sense:
"HEAD@{yesterday}" = current branch, yesterday
"@{yesterday}" = detached head (no branch), yesterday
Okay, so you say "HEAD@{yesterday}" does _not_ give you what HEAD pointed
to yesterday, but "@{yesterday}" does?
Instead "HEAD@{yesterday}" looks up what HEAD points to _now_, and _then_
goes back to yesterday, finding out what that particular branch pointed to
then, _regardless_ what HEAD was then?
Oh my, that's convoluted.
Depends on your point of view:
HEAD: 1) noun. Synonym for the branch I am currently on.
HEAD: 2) noun. Synonym for the commit I am currently on.
HEAD: 3) noun. The tip of the current branch.
HEAD: 4) noun. The part of the body I am right now banging on the wall.
Now that we can detach our HEAD anytime we want, I'm in the latter camp,
and your (Dscho's) meaning for HEAD@{yesterday} and @{yesterday} makes
perfect sense.
But I suspect most Git users are still in the former camp, as they
haven't been exposed to the process (or need, or desire) to detach their
HEAD...
But has _nothing_ to do with a detachable HEAD.
Once people know what HEAD is, they do
git show HEAD
to see what the tip of their current branch looks like. Now, read out
aloud "HEAD@{12:00.pm.yesterday}". Yes, that's right. It says "HEAD at
noon yesterday".
I mean, it's really easy to see what HEAD is good for. If your head
automatically resolved HEAD to "the current branch, right now, even if I
am talking about another time", I find it convoluted.
That's all.
Ciao,
Dscho