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

Re: Consistent terminology: cached/staged/index

From
Drew Northup <drew.northup@maine.edu>
Date
Mar 1, 2011, 17:41 UTC
Message-ID
<1299001318.5247.57.camel@drew-northup.unet.maine.edu>
In-Reply-To
<AANLkTikCEoc55WuiRNo6Q=sXqTd_WDfVRb6cnN5bRD=0@mail.gmail.com>
On Tue, 2011-03-01 at 19:30 +0200, Alexei Sholik wrote:
Show 21 quoted lines
> On 1 March 2011 19:02, Drew Northup <drew.northup@maine.edu> wrote:
> >
> > On Tue, 2011-03-01 at 11:32 +0200, Alexei Sholik wrote:
> >
> >> I guess, people who are friendly with git using the word "index"
> >> because it's easier to type. But it confuses an unprepared reader. The
> >> solution of the problem with confusion must be relevant to these
> >> points:
> >>  - clarify that "index" means the same thing as the "staging area" (in
> >> man if it isn't there already?)
> >
> > Alas, this isn't quite true. Blobs are copied to the .git/objects
> > directory (which I referred to earlier as an object store without proper
> > qualification) with each "git add" action AND are noted in the Index at
> > the same time. Therefore the Index is quite literally containing
> > information about the blobs to be committed without containing the blobs
> > themselves. This is why I find any specific equivalence between Index
> > and "staging area" distasteful--it is misleading.
> 
> There's no reason to make it more confusing by telling all the
> implementation details users are not interested in.
I am not advocating that.
> Once I add a modified file to index (via 'git add') or even add a new
> file, its content is already tracked by git. This is the most relevant
> part.
Agreed.
Show 11 quoted lines
> It is not relevant from the user's point of view whether it's already
> in .git/objects or not. Once I've staged a file, I can rm it and then
> 'git checkout' it again to the version that's remembered in the
> staging area, i.e. I will not lose it's contents once it's been
> staged.
> 
> If what you're trying to say is that new users think of the 'staging
> area' as some place where the content is stored before a subsequent
> commit, there's nothing bad about it. If they will try to find out
> about it's concrete location in the fs, they'll eventually find out
> about index and its true nature in terms of implementation.

My argument is that we should use "staging area" or "preparation area" or whatever we end up using as tools to explain the USAGE of Git without inferring that IT WORKS THAT WAY DEEP INSIDE. That's why I don't want to claim that the Index is (or means the same thing as) a staging area--we shouldn't be bothering beginner users with the Index yet anyway. Just saying that the information gets put into files in .git that act as a "staging area" is good enough--we don't need to extricate all mentions of "Index" or "cache" from the documentation. Unfortunately, if this is not done carefully we end up with people complaining that the documentation is inconsistent when it is often just blunt and indelicately worded.

-- 
-Drew Northup
________________________________________________
"As opposed to vegetable or mineral error?"
-John Pescatore, SANS NewsBites Vol. 12 Num. 59
Previous: Alexei SholikNext: Alexey Feldgendler
Message 56 of 65 in “Consistent terminology: cached/staged/index”
  1. Piotr KrukowieckiFeb 13, 2011
  2. Jonathan NiederFeb 13, 2011
  3. Junio C HamanoFeb 13, 2011
  4. Miles BaderFeb 14, 2011
  5. Junio C HamanoFeb 14, 2011
  6. Miles BaderFeb 14, 2011
  7. Johannes SixtFeb 14, 2011
  8. Miles BaderFeb 14, 2011
  9. Michael J GruberFeb 14, 2011
  10. Miles BaderFeb 14, 2011
  11. Junio C HamanoFeb 14, 2011
  12. Miles BaderFeb 14, 2011
  13. Junio C HamanoFeb 14, 2011
  14. Miles BaderFeb 14, 2011
  15. Junio C HamanoFeb 15, 2011
  16. Nguyen Thai Ngoc DuyFeb 14, 2011
  17. Michael J GruberFeb 14, 2011
  18. Nguyen Thai Ngoc DuyFeb 14, 2011
  19. Felipe ContrerasFeb 14, 2011
  20. Nguyen Thai Ngoc DuyFeb 14, 2011
  21. Jakub NarebskiFeb 14, 2011
  22. Michael J GruberFeb 14, 2011
  23. Felipe ContrerasFeb 14, 2011
  24. Michael J GruberFeb 14, 2011
  25. Felipe ContrerasFeb 14, 2011
  26. Pete HarlanFeb 14, 2011
  27. Drew NorthupFeb 16, 2011
  28. Felipe ContrerasFeb 26, 2011
  29. Drew NorthupFeb 27, 2011
  30. AghilesFeb 27, 2011
  31. Drew NorthupFeb 28, 2011
  32. Piotr KrukowieckiFeb 14, 2011
  33. Jonathan NiederFeb 14, 2011
  34. Pete HarlanFeb 15, 2011
  35. Jonathan NiederFeb 15, 2011
  36. Piotr KrukowieckiFeb 15, 2011
  37. Jonathan NiederFeb 15, 2011
  38. Felipe ContrerasFeb 26, 2011
  39. Jonathan NiederFeb 26, 2011
  40. Miles BaderFeb 27, 2011
  41. Felipe ContrerasFeb 27, 2011
  42. Jonathan NiederFeb 27, 2011
  43. Junio C HamanoFeb 27, 2011
  44. Jeff KingFeb 27, 2011
  45. Miles BaderFeb 27, 2011
  46. Jon SeymourFeb 27, 2011
  47. Junio C HamanoFeb 27, 2011
  48. Michael J GruberFeb 28, 2011
  49. Drew NorthupFeb 27, 2011
  50. Jeff KingFeb 28, 2011
  51. DavidMar 1, 2011
  52. Matthieu MoyMar 1, 2011
  53. Alexei SholikMar 1, 2011
  54. Drew NorthupMar 1, 2011
  55. Alexei SholikMar 1, 2011
  56. Drew NorthupMar 1, 2011
  57. Alexey FeldgendlerMar 1, 2011
  58. Drew NorthupMar 1, 2011
  59. Felipe ContrerasMar 4, 2011
  60. Miles BaderMar 5, 2011
  61. Jonathan NiederMar 5, 2011
  62. Drew NorthupMar 6, 2011
  63. Phil HordFeb 27, 2011
  64. Jonathan NiederMar 1, 2011
  65. Victor EngmarkMar 1, 2011

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.