git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/3] prevent HEAD reflog to be interpreted as current branch reflog

From
APAndy Parkins <andyparkins@gmail.com>
Date
Feb 2, 2007, 13:02 UTC
Message-ID
<200702021302.10567.andyparkins@gmail.com>
In-Reply-To
<8c5c35580702020302g46f71fe3o24d7dc9490192cab@mail.gmail.com>
On Friday 2007 February 02 11:02, Lars Hjemli wrote:
>   "HEAD@{yesterday}" = current branch, yesterday
>   "@{yesterday}"     = detached head (no branch), yesterday
I'd vote for this too.  It's the only logically consistent view.

HEAD is a symbolic reference, it's a way of referring to a real branch by another name. HEAD@{} should be the same as branch@{} to be consistent.

Forgetting about detached heads for the moment, imagine that yesterday I did lots of bouncing around on branches, around 1300 (although I wouldn't remember the exact time). Oh look, it's about 1300 now. What then is HEAD@{yesterday} going to tell me? What will it tell me one minute from now? It would be the most confusing operation in the world; I'd have to remember which branch I had checked out and what time I checked it out.

I really don't want to be able to answer the question what branch did I have checked out 15 minutes ago. I do want to ask where was my current branch 15 minutes ago.

Then of course, it's perfectly reasonable to treat the detached HEAD as meaning that the symref HEAD was pointing at a kind of virtual branch - this is a branch that isn't in the refs directory but is reflogged. Other than that it's no different from any other branch.

Any notation would do I think, @{} is as good as any other. In fact, if we used the name "unnamed branch" instead of "detached head", the notation @{} is perfect. (Actually I think unnamed branch is a much better term than detached HEAD, because HEAD is never detached - it must point at something)

Andy
-- 
Dr Andy Parkins, M Eng (hons), MIEE
andyparkins@gmail.com
Previous: Lars HjemliNext: Nicolas Pitre
Message 15 of 35 in “prevent HEAD reflog to be interpreted as current branch reflog”
  1. 3/3 prevent HEAD reflog to be interpreted as current branch reflogNicolas Pitre, Feb 1, 2007
  2. Shawn O. PearceFeb 1, 2007
  3. Junio C HamanoFeb 1, 2007
  4. Simon 'corecode' SchubertFeb 1, 2007
  5. Nicolas PitreFeb 1, 2007
  6. Matthias LederhoferFeb 1, 2007
  7. 4/3 provide a nice @{...} syntax to always mean the current branch reflogNicolas Pitre, Feb 1, 2007
  8. 5/3 , was Re: [PATCH 4/3] provide a nice @{...} syntax to always mean the current branch reflogJohannes Schindelin, Feb 1, 2007
  9. 6/3 , was Re: [PATCH 5/3], was Re: [PATCH 4/3] provide a nice @{...} syntax to always mean the current branch reflogJohannes Schindelin, Feb 1, 2007
  10. Junio C HamanoFeb 2, 2007
  11. Nicolas PitreFeb 1, 2007
  12. Jakub NarebskiFeb 2, 2007
  13. Johannes SchindelinFeb 2, 2007
  14. Lars HjemliFeb 2, 2007
  15. Andy ParkinsFeb 2, 2007
  16. Nicolas PitreFeb 2, 2007
  17. Nicolas PitreFeb 2, 2007
  18. Andy ParkinsFeb 2, 2007
  19. Simon 'corecode' SchubertFeb 2, 2007
  20. Nicolas PitreFeb 2, 2007
  21. Mark WoodingFeb 3, 2007
  22. Andy ParkinsFeb 3, 2007
  23. Jakub NarebskiFeb 2, 2007
  24. Simon 'corecode' SchubertFeb 2, 2007
  25. Simon 'corecode' SchubertFeb 2, 2007
  26. Nicolas PitreFeb 2, 2007
  27. Lars HjemliFeb 2, 2007
  28. Johannes SchindelinFeb 5, 2007
  29. Shawn O. PearceFeb 5, 2007
  30. Johannes SchindelinFeb 5, 2007
  31. Lars HjemliFeb 5, 2007
  32. Andy ParkinsFeb 2, 2007
  33. Rogan DawesFeb 2, 2007
  34. Andy ParkinsFeb 2, 2007
  35. Junio C HamanoFeb 3, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.