Nicolas Pitre <nico@cam.org> writes:I like the direction this is taking us. The documentation update is in the same spirit with the sample rewrite of 'git diff' manpage. We might want to tweak the wording to make this round of documentation updates consistent. My preferences: - You used the word "changeset"; I am not sure that is a good wording. The recent explanation I saw on the list and liked were "you _stage_ your changes to prepare for the next commit (footnote: the staging area is called 'the index')". My impression was that both extremes (Linus and Carl) are also Ok with this wording. - We keep the word "index", and not reword it to "stage" in the names of commands and options. "to stage" is very good verb to explain the _concept_, but there is no need to use inconsistent wording Porcelain-ish and plumbing use to describe the entity used for staging. (1) New people need to learn the new concept anyway, and they are intelligent enough to learn what that new concept has been called for a long time in git-land at the same time. "The index" is the receiver of new contents to be staged; conversely, "to stage" is the act of registering contents to the index. (2) Majority of git old timers do not follow git mailing list discussion closely. They already know the concept of "registering thing in the index". We on the list are just about to agree to give a good short name, "to stage", for that action they have known about, in order for us to make it easier to explain to new people. That should not affect the terminology the old timers are accustomed to and and trained their fingers with ("update-index", "diff --cached", "apply --index"). (3) I hope nobody proposes to rename "update-index" to "update-stage" nor "diff-index" to "diff-stage"; that would break countless number of existing third party scripts old timers rely on and even new people would find on the web and tempted to try out, so plumbing level commands and options have to keep using the word 'index'. The option to 'git diff --cached' may need a new synonym to make things consistent, but the new synonym should be --index, not --staged. (4) New people will not stay newbies forever. Using a consistent word for the entity used for staging for the next commit across Porcelain and plumbing is important. Yup. Borrow from "update-index --again", perhaps? ... "before a new commit is made"; it is not an offence to leave local changes outside the index. Staging such changes to all files is done using the "-a" flag and that is done "before a new commit is made", but not "before using the 'commit' command" -- it is done at the same time. May be we could hint the reader that a faster-to-type alternative exists here. Perhaps... Note: instead of doing 'git add' to stage the modified contents, you can ask 'git commit' to take all the modified contents in the working tree and stage them all before creating a commit with 'git commit -a'. s/I/i/ I think there is another twist more deserving of mention than -i twist. If you jump the index using --only, what is committed with that commit becomes part of what is staged for the commit after that, and in order to prevent data loss, we disallow this sequence: $ git checkout $ edit foo $ git add foo ;# your new add to update the existing entry. $ edit foo $ git commit foo If we did not have the second edit (the behaviour is the same if we did not have "git add foo" there), this commit: * commits the changes to 'foo' (not because you staged it earlier with 'git add', but only because you said "commit foo" to invoke the '--only' semantics), obviously; * updates 'foo' in the index to what was committed. So if we allowed the above sequence to succeed, we would commit the result of the second edit, and after the commit, the index would have the result of the second edit. We would lose the state the user wanted to keep in the index while this commit jumped the index, and that is why we disallow it. I wonder if this sequence should do the same as "git rm -f foo": $ /bin/rm foo $ git add foo That's one of the reasons I suggested 'checkin' instead of 'resolve', 'resolved', etc. You check-in the removal of the content from that path to the staging area, to go as a part of the next commit. Hmph. Fair enough. "use git-add to mark for commit, or use commit -a"? I think the one source of confusion is "update-index" sounds as if it is a command to "update the index" and as if you can leave out "with what?" part to complete the order to the command. We can use the word "add", thanks to your patch that enhances the user level command, and I do not think the word "add" would not induce that confusion. It is more obvious that you have to say "what to add". - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Ingo Molnar | [bug] block subsystem related crash with latest -git |
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Adrian Bunk | Re: net/ipv4/fib_trie.c - compile error (Re: 2.6.23-rc3-mm1) |
git: | |
| Gerrit Renker | [PATCH 03/37] dccp: List management for new feature negotiation |
| Jarek Poplawski | [PATCH take 2] pkt_sched: Protect gen estimators under est_lock. |
| David Miller | [GIT]: Networking |
| Natalie Protasevich | [BUG] New Kernel Bugs |
