On 17.10.2013, at 21:50, Junio C Hamano <gits...@pobox.com> wrote: > Felipe Contreras <felipe.contre...@gmail.com> writes:
[...] > > However, since you asked, I would share a couple of comments > regarding the index, cache and staging area. > > (1) "Staging area". > > The phrase "staging area" is not an everyday phrase or common CS > lingo, and that unfortunately makes it a suboptimal choice of words > especially to those of us, to whom a large portion of their exposure > to the English language is through the command words we use when we > talk to our computers. Interestingly, as a non-native speaker, I draw the exact reverse conclusion from this: While I had no idea what a "staging area" or "to stage" was (I did know the "stage" in a theater, though), I found this to not be a major problem: Using a dictionary and reading up on what it means in git made it clearly quickly enough. To the contrary, the fact that the term was not yet overloaded with conflicting other meanings made it easier for me to attach the semantics git associates with it. In contrast, "index" was exceedingly bad and confusing to me... I already had various notions of what an "index" is (e.g. the index of a book -- the same word actually exists in German; or more generally an index in computer science, as a kind of loopup table, etc.), and to this day, have a hard time consolidating this with the way git uses it. For me, it is yet another, seeming completely unrelated, meaning of the word "index" I had to memorize. Hey, just take a look at Wiki page <http://en.wikipedia.org/wiki/Index> for the many dozens of meanings associated to this word. Ugh. And worst of it, I am actually not quite sure on which of the meanings listed there "the index" as used by git is based... I.e. I don't even see a helpful analogy that would make it easier to understand the choice of name. In summary: For me as a non-native speaker, "index" feels like about the worst possible choice (well, you could have called it the "file" or "thing", that might have been worse ;-). While staging area turned out to be surprisingly good, *precisely* because I was unfamiliar with it. So, while "staging area" might not be perfect, it seems good enough to me. If this matter had indeed been discussed here for years, and no better suggestions has come up, then perhaps it is time to end the search for the (possibly non-existent) perfect solution, and instead do the pragmatic? > The index can also be thought of "like the buffer cache, where new > contents of files are kept before they are committed to disk > platter." At least, non-native speaker with CS background would > understand that, much better than "the index" (no, I am not saying > that we should call it "the cache"; I am just saying "the index" is > not a good word, but we may need to find a better word than "the > staging area"). Huh? As a non-native speaker with CS background, this actually leaves me more confused than I was before. I think about "the staging area", and I don't see how this is anything like an "index" (in any of the meaning I see on <http://en.wikipedia.org/wiki/Index>). I can vaguely recognize a faint similarity to a "cache", and yet more relation to a "buffer", but in the end, none of these strike me as particularly illustrative. For that matter, I never really understood of why I had to do "git diff --cached", I simply learned it by rote. On the other hand, I feel that after understanding what the staging area is, then writing "git diff --staged" is very logical and simple to memorize. Cheers, Max
signature.asc
Description: Message signed with OpenPGP using GPGMail