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

Re: Officially start moving to the term 'staging area'

From
DNDrew Northup <n1xim.email@gmail.com>
Date
Sep 4, 2013, 04:45 UTC
Message-ID
<CAM9Z-nnjb1wUDH9e=E38QnWvPK44xZqvza77yNLrDpjpj47BKw@mail.gmail.com>
In-Reply-To
<CAMP44s3ABKMAhp_P+QZBWOfjp_wPkqB0A63v6n2mKZv_Ln+qKg@mail.gmail.com>

On Thu, Aug 29, 2013 at 6:10 PM, Felipe Contreras <felipe.contreras@gmail.com> wrote:

Show 13 quoted lines
> On Thu, Aug 29, 2013 at 4:55 PM, Drew Northup <n1xim.email@gmail.com> wrote:
>> On Thu, Aug 29, 2013 at 2:37 PM, Junio C Hamano <gitster@pobox.com> wrote:
>>> Felipe Contreras <felipe.contreras@gmail.com> writes:
>>>
>>>> It has been discussed many times in the past that 'index' is not an
>>>> appropriate description for what the high-level user does with it, and
>>>> it has been agreed that 'staging area' is the best term.
>>>
>>> "add" is the verb, not "index" (which is a noun that refers
>>> to the thing that keeps track of what will be written as a tree to
>>> be committed next).
>>>
>>> And it will stay that way.
Show 5 quoted lines
>> I agree with Junio.
>
> All right, you are the only person (presumably other than Junio) that
> thinks "index" is the right name for what high-level users should be
> familiar with.

If that were true it would never have gotten that name. "Add" is the verb, as we are adding a snapshot. New users don't care how that works for the most part. Just telling them "it keeps track of it itself" is usually good enough. If the user is asking for more detail at that point it is probably because he isn't as much interested in how to use it as he is in how it works. At that point we're better off just giving him the actual explanation instead of getting caught up in the staging area vs index fight (which seems odd to me as the index contains the entries which act as a "staging area"--a superset / subset relation).

Show 14 quoted lines
>> We add content snapshots to the index of content (creating
>> "temporary"--they will be garbage collected eventually if they become
>> orphans--objects into the store at the same time). We build commits
>> from those snapshots (in whole or in part, typically only using the
>> most recent snapshots of new things added to the index) and save those
>> in the object store with the content and tree objects. Sometimes we
>> create tag objects to record something special about commits, trees,
>> and content blobs.
>>
>> That's the real model (with some rough edges). Explaining what that
>> has to do with distributed version control is the hard part.
>
> The user doesn't need to know the format of the index, or the packs,
> in fact, they don't even need to know the index or packs even exist.

I never implied that the end user does need to know these things. (Note the use of "We"--as in "we who are having this conversation.")

> All the user needs to know about this is that there's an area where
> contents of the next commit are being prepared, and "staging area" is
> the best name for that mental area. How that area is actually
> implemented (the index) is not relevant to the user.

Part of what I am arguing is that the mental area doesn't need to exist at all. The "staging area" is a part of the index. It is not the whole thing. There is no one-off complete replacement of one with the other. Most new users won't care about either, just that it happens somehow and that git keeps track of that state itself. We need not change any core items to achieve that.

> Everyone agrees on that, except you, and possibly Junio.

We don't have enough information to say that. Seriously, this is nowhere near as certain as climate change.

-- 
-Drew Northup
--------------------------------------------------------------
"As opposed to vegetable or mineral error?"
-John Pescatore, SANS NewsBites Vol. 12 Num. 59
Previous: Felipe ContrerasNext: Felipe Contreras
Message 32 of 58 in “Officially start moving to the term 'staging area'”
  1. Felipe ContrerasAug 29, 2013
  2. 0/2 stage: proper 'stage' commandFelipe Contreras, Aug 29, 2013
  3. 1/2 Add proper 'stage' commandFelipe Contreras, Aug 29, 2013
  4. Matthieu MoyAug 29, 2013
  5. Felipe ContrerasAug 29, 2013
  6. 2/2 stage: add edit commandFelipe Contreras, Aug 29, 2013
  7. Matthieu MoyAug 29, 2013
  8. Felipe ContrerasAug 29, 2013
  9. 0/9 Add --stage and --work optionsFelipe Contreras, Aug 29, 2013
  10. 1/9 diff: document --stagedFelipe Contreras, Aug 29, 2013
  11. 2/9 grep: add --staged optionFelipe Contreras, Aug 29, 2013
  12. 3/9 rm: add --staged optionFelipe Contreras, Aug 29, 2013
  13. 4/9 stash: add --stage option to saveFelipe Contreras, Aug 29, 2013
  14. Matthieu MoyAug 29, 2013
  15. 5/9 stash: add --stage to pop and applyFelipe Contreras, Aug 29, 2013
  16. 6/9 submodule: add --staged optionsFelipe Contreras, Aug 29, 2013
  17. 7/9 apply: add --stage optionFelipe Contreras, Aug 29, 2013
  18. 8/9 apply: add --work, --no-work optionsFelipe Contreras, Aug 29, 2013
  19. 9/9 completion: update --staged optionsFelipe Contreras, Aug 29, 2013
  20. 0/3 reset: refactor into --stage and --workFelipe Contreras, Aug 29, 2013
  21. 1/3 reset: add --stage and --work optionsFelipe Contreras, Aug 29, 2013
  22. 2/3 reset: allow --keep with --stageFelipe Contreras, Aug 29, 2013
  23. 3/3 completion: update 'git reset' new stage optionsFelipe Contreras, Aug 29, 2013
  24. Junio C HamanoAug 29, 2013
  25. Felipe ContrerasAug 29, 2013
  26. Felipe ContrerasAug 30, 2013
  27. Felipe ContrerasAug 30, 2013
  28. Felipe ContrerasAug 30, 2013
  29. Felipe ContrerasAug 30, 2013
  30. Drew NorthupAug 29, 2013
  31. Felipe ContrerasAug 29, 2013
  32. Drew NorthupSep 4, 2013
  33. Felipe ContrerasSep 8, 2013
  34. Piotr KrukowieckiAug 30, 2013
  35. Drew NorthupSep 4, 2013
  36. Piotr KrukowieckiSep 4, 2013
  37. Drew NorthupSep 4, 2013
  38. Felipe ContrerasSep 8, 2013
  39. Felipe ContrerasSep 8, 2013
  40. Felipe ContrerasSep 8, 2013
  41. Philip OakleySep 8, 2013
  42. Felipe ContrerasSep 8, 2013
  43. Matthieu MoyAug 29, 2013
  44. Felipe ContrerasAug 29, 2013
  45. Matthieu MoyAug 29, 2013
  46. Matthieu MoyAug 29, 2013
  47. René ScharfeAug 29, 2013
  48. Felipe ContrerasAug 29, 2013
  49. René ScharfeAug 31, 2013
  50. Felipe ContrerasAug 31, 2013
  51. David AguilarSep 1, 2013
  52. Matthieu MoyAug 29, 2013
  53. William SwansonSep 4, 2013
  54. Ping YinSep 6, 2013
  55. Hilco WijbengaSep 6, 2013
  56. Felipe ContrerasSep 8, 2013
  57. Ramkumar RamachandraSep 9, 2013
  58. Felipe ContrerasSep 9, 2013

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.