Re: [1.8.0] use 'stage' term consistently

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: "Felipe Contreras" <felipe.contreras@xxxxxxxxx> Sent: Saturday, May 05, 2012 2:04 PM
Proposal:

Avoid the terms 'cache' and 'index' in favor of 'stage'.

Advantages:

The term 'stage' is more intuitive for newcomers which are more
familiar with English than with git, and it seems to be a
straightforward mental notion for people from different mother
tongues.

It is so intuitive that it is used already in a lot online
documentation, and the people that do teach git professionally use
this term.

I've never found any of the terms to be great (as per this discussion ;-).

The term that helped me most, heard on one of the git videos, was "it's like a manifest", alluding to a 'shipping manifest', which then leads to both the "staging area" and "index" terms. Though "index" is probably too technical for most folk.

The allusion to shipping a consignment or rail marshalling (classification) yards, and similar frieght flows, may be another way for _explaining_ the term chosen for the preparation, consolidation and aggregation of the next shipment (commit). Most other VCS systems hide this stage (sic), hence the difficulty in explaining this to the lay person.

Risks:

People might be accustomed to the current options, and might take some
time to get used to the new term. Scripts might be relying on the
current options.

There's also the possibility that a lot of people prefer the terms
'cache' and 'index', but from the countless discussions on this
subject, that seems to be rather unlikely.

Migration plan:

Follow a typical obsolete/deprecate process; for a period of time warn
that the options are obsolete and shouldn't be used, in case there's a
lot of people against this, this period would allow for them to shout;
then remove them.

Rationale:

First of all, this discussion _always_ keeps coming back, so its clear
something needs to be done, and in the last big discussion the
consensus was that 'stage' was the best option. In summary:

cache: a 'cache' is a place for easier access; a squirrel caches nuts
so it doesn't have to go looking for them in the future when it might
be much more difficult. Git porcelain is not using the staging area
for easier future access; it's not a cache.

index: an 'index' is a guide of pointers to something else; a book
index has a list of entries so the reader can locate information
easily without having to go through the whole book. Git porcelain is
not using the staging area to find out entries quicker; it's not an
index.

stage: a 'stage' is a special area designated for convenience in order
for some activity to take place; an orator would prepare a stage in
order for her speak to be successful, otherwise many people might not
be able to hear, or see her.  Git porcelain is using the staging area
precisly as a special area to be separated from the working directory
for convenience.

The term 'stage' is a good noun itself, but also 'staging area', it
has a good verb; 'to stage', and a nice past-participle; 'staged'.

--
Felipe Contreras

Philip
--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]