On Fri, Oct 15, 2010 at 02:32:52PM -0500, Jonathan Nieder wrote: > > git commit -o|--only, which is the same as "git commit <paths>". Of > > course it still uses an index, to create the tree, but it uses a > > temporary one based on HEAD instead of the current index contents. > > Ah, it's stranger than that. > > * A partial commit. > * > * (0) find the set of affected paths; > * (1) get lock on the real index file; > * (2) update the_index with the given paths; > * (3) write the_index out to the real index (still locked); > * (4) get lock on the false index file; > * (5) reset the_index from HEAD; > * (6) update the_index the same way as (2); > * (7) write the_index out to the false index file; > * (8) return the name of the false index file (still locked); > > The net effect being that the index will match the work tree for the > listed paths when the operation is over, while other files are > untouched. Well, yeah, it does have to update those files in the regular index. Any other semantics would be insane; the change would appear reverted looking at the difference between HEAD and the index. With respect to your proposed change: > diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt > index 42fb1f5..6bb3eff 100644 > --- a/Documentation/git-commit.txt > +++ b/Documentation/git-commit.txt > @@ -191,9 +191,10 @@ FROM UPSTREAM REBASE" section in linkgit:git-rebase[1].) > --only:: > Make a commit only from the paths specified on the > command line, disregarding any contents that have been > - staged so far. This is the default mode of operation of > - 'git commit' if any paths are given on the command line, > - in which case this option can be omitted. > + staged so far. The state of other files in the index is > + preserved and will not affect the commit. This is the > + default mode of operation of 'git commit' if any paths are given > + on the command line, in which case this option can be omitted. I always assumed that "disregarding any contents that have been staged" meant "we will leave unmentioned paths alone". But I don't think it hurts to be explicit. So your change looks fine to me. -Peff -- 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