On 03/01/2011 12:03 AM, Jeff King wrote: > On Sun, Feb 27, 2011 at 10:34:00AM -0500, Drew Northup wrote: > One analogy I like for the index is that it's a bucket. It starts out > full of files from the last commit. You can put new, changed files in > the bucket. When it looks good, you dump the bucket into a commit. You > can have multiple buckets if you want. You can pull files from other > commits and put them in the bucket. You can take files out of the bucket > and put them in your work tree. > > So maybe it should just be called "the bucket"? > > I'm not sure that's a good idea, because while the analogy makes sense, > it doesn't by itself convey any meaning. That is, knowing the concept, I > can see that bucket is a fine term. But hearing about git's bucket, I > have no clue what it means. Whereas "staging area" I think is a bit more > specific, _if_ you know what a staging area is. > > So there are two questions: > > 1. Is there a more universal term that means something like "staging > area"? > > 2. Is the term "staging area", while meaningful to some, actually > _worse_ to others than a term like "bucket"? That is, does it sound > complex and scary, when it is really a simple thing. And while > people won't know what the "git bucket" is off the bat, it is > relatively easy to learn. I like the name "git bucket", as in "a git bit bucket", but semantically the connection is just "a container". Especially for beginners this can result in the wrong connotations: * Limited size. A modern harddisk is vastly larger than most Git repositories, likening it more to a container ship than a bucket. * Definite size. Harddisk space availability varies with time, unlike most containers. * Non-linear use. A full physical bucket could be used for many different things, but a full git bucket can either be forgotten (with checkout), remembered temporarily (with stash), or remembered permanently (with commit). * Container-specific features irrelevant for git: Handles, translucency (or not), depth, material, dimensions of the opening... How about a metaphor like "plan"? You either cancel/undo it (git checkout), postpone / shelf it (git stash), resume/continue it (git stash apply) or commit to it. Coming from the desktop metaphor, I personally like `git undo`, `git postpone/resume` and `git commit` - They give a clear sense of direction towards the commit, and much clearer verbs for those new to VC in general. -- Victor Engmark -- 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