From: Linus Torvalds <torvalds@osdl.org>
To: Junio C Hamano <junkio@cox.net>
Cc: Daniel Barkalow <barkalow@iabervon.org>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Carl Baldwin <cnb@fc.hp.com>, Keith Packard <keithp@keithp.com>,
Martin Langhoff <martin.langhoff@gmail.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: [Census] So who uses git?
Date: Tue, 31 Jan 2006 16:38:50 -0800 (PST) [thread overview]
Message-ID: <Pine.LNX.4.64.0601311623240.7301@g5.osdl.org> (raw)
In-Reply-To: <7vek2oot7z.fsf@assigned-by-dhcp.cox.net>
On Tue, 31 Jan 2006, Junio C Hamano wrote:
> Daniel Barkalow <barkalow@iabervon.org> writes:
>
> > I sort of suspect that "git commit some_other_file" should really read
> > HEAD into a temporary index, update "some_other_file" in that (and the
> > main index), and commit it.
> > ...
> > The surprising thing is that "git commit path ..." means
> > "everything I've already mentioned, plus path..." not just
> > "path ...", and it's particularly surprising because people
> > only tend to specify paths when they've done something they
> > don't want to commit.
>
> Interesting idea, and a good point.
One thing to be careful about is merges.
This actually happens to me:
git pull ....
.. uhhuh, trivial conflict in one file ..
.. edit the/file/that/conflicted ..
git commit the/file/that/conflicted
and there is no way that it would ever be correct to then just commit that
one file. The fact that it's a merge means that the rest of the index -
which is all from the merge, and correct - absolutely _must_ be committed
too.
And yes, I could use "git commit -a" (and I often do), but the thing is, I
surprisingly often have edits in unrelated files (stuff that the merge
never touched), and doing "git commit -a" would do the wrong thing.
So the current "git commit filename" behaviour is actually the only
possible correct one for a merge. Nothing else makes any sense
what-so-ever.
Now, I can hear people arguing that "ok, merges are special, and for
merges we always do it in the current index", but that makes "git commit
pathname" act very _differently_ for a merge than for a normal commit.
That just smells wrong to me.
So if you do this change (which may be the right one) then please make
sure that "git commit <filename>" doesn't work _at_all_ when a merge is in
progress (ie MERGE_HEAD exists), because it would do the wrong thing.
And yes, then I'll just have to force my fingers to do a simple
git-update-index filename
git commit
instead. I can do that.
Oh, one final suggestion: if you give a filename to "git commit", and you
do the new semantics which means something _different_ than "do a
git-update-index on that file and commit", then I'd really suggest that
the _old_ index for that filename should match the parent exactly.
Otherwise, you may have done a
git diff filename
and you _thought_ you were committing just a two-line thing (because you
didn't understand about the index), but another, earlier, action caused
the index to be different from the file you had in HEAD, and in reality
you're actually committing a much bigger diff.
In other words: if you want "git commit <filename>" to _not_ care about
the current index, then it should make sure that the index at least
_matches_ the current HEAD in the files mentioned.
Ie "git-diff-index --cached HEAD <filespec>" should return empty. Or
something like that.
Linus
next prev parent reply other threads:[~2006-02-01 0:42 UTC|newest]
Thread overview: 110+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-26 2:10 LCA06 Cogito/GIT workshop - (Re: git-whatchanged: exit out early on errors) Martin Langhoff
2006-01-28 4:47 ` Linus Torvalds
2006-01-28 5:33 ` Martin Langhoff
2006-01-28 5:53 ` Linus Torvalds
2006-01-28 6:32 ` Junio C Hamano
2006-01-29 10:12 ` Fredrik Kuivinen
2006-01-29 20:15 ` Junio C Hamano
2006-01-28 11:00 ` Keith Packard
2006-01-28 21:08 ` [Census] So who uses git? Junio C Hamano
2006-01-29 2:14 ` Morten Welinder
2006-01-29 3:53 ` Junio C Hamano
2006-01-29 14:19 ` Morten Welinder
2006-01-29 20:15 ` Junio C Hamano
2006-01-29 10:09 ` Keith Packard
2006-01-29 11:18 ` Radoslaw Szkodzinski
2006-01-29 18:12 ` Greg KH
2006-01-31 18:33 ` Radoslaw Szkodzinski
2006-01-31 19:50 ` Radoslaw Szkodzinski
2006-01-31 20:43 ` Junio C Hamano
2006-01-31 21:02 ` Radoslaw Szkodzinski
2006-01-30 22:51 ` Alex Riesen
2006-01-31 21:25 ` Linus Torvalds
2006-01-31 21:52 ` J. Bruce Fields
2006-01-31 22:01 ` Alex Riesen
[not found] ` <20060201013901.GA16832@mail.com>
2006-02-01 2:04 ` Linus Torvalds
2006-02-01 2:09 ` Linus Torvalds
2006-02-09 5:15 ` [PATCH] "Assume unchanged" git Junio C Hamano
2006-02-09 5:49 ` [PATCH] "Assume unchanged" git: do not set CE_VALID with --refresh Junio C Hamano
2006-02-09 5:50 ` [PATCH] ls-files: debugging aid for CE_VALID changes Junio C Hamano
2006-02-01 2:31 ` [Census] So who uses git? Junio C Hamano
2006-02-01 3:43 ` Linus Torvalds
2006-02-01 7:03 ` Junio C Hamano
[not found] ` <20060201045337.GC25753@mail.com>
2006-02-01 5:04 ` Linus Torvalds
2006-02-01 5:42 ` Junio C Hamano
2006-02-01 16:15 ` Jason Riedy
2006-02-01 19:20 ` Julian Phillips
2006-02-01 19:29 ` Linus Torvalds
2006-02-06 21:15 ` Chuck Lever
2006-02-01 2:52 ` Martin Langhoff
2006-02-01 3:48 ` Linus Torvalds
2006-02-01 19:30 ` H. Peter Anvin
2006-02-01 14:55 ` Alex Riesen
2006-02-01 16:25 ` Linus Torvalds
2006-02-02 9:12 ` Alex Riesen
2006-01-29 18:37 ` Dave Jones
2006-01-29 20:17 ` Daniel Barkalow
2006-01-29 20:29 ` Martin Langhoff
2006-01-30 15:23 ` Mike McCormack
2006-01-30 18:58 ` Carl Baldwin
2006-01-31 10:27 ` Johannes Schindelin
2006-01-31 15:24 ` Carl Baldwin
2006-01-31 15:31 ` Johannes Schindelin
2006-01-31 17:30 ` Linus Torvalds
2006-01-31 18:12 ` J. Bruce Fields
2006-01-31 19:33 ` Junio C Hamano
2006-01-31 19:44 ` Jon Loeliger
2006-01-31 19:52 ` Junio C Hamano
[not found] ` <7vd5i8w2nc.fsf@assigned-by-dhcp.cox.net>
2006-01-31 20:56 ` J. Bruce Fields
2006-01-31 20:06 ` J. Bruce Fields
2006-01-31 19:01 ` Keith Packard
2006-01-31 19:21 ` Linus Torvalds
2006-01-31 22:55 ` Joel Becker
2006-02-01 14:43 ` Johannes Schindelin
2006-01-31 20:56 ` Sam Ravnborg
2006-01-31 22:21 ` Junio C Hamano
2006-02-01 19:34 ` H. Peter Anvin
2006-01-31 23:16 ` Daniel Barkalow
2006-01-31 23:36 ` Petr Baudis
2006-01-31 23:47 ` Junio C Hamano
2006-02-01 0:38 ` Linus Torvalds [this message]
2006-02-01 0:52 ` Junio C Hamano
2006-02-01 2:19 ` Daniel Barkalow
2006-02-01 6:42 ` Junio C Hamano
2006-02-01 7:22 ` Carl Worth
2006-02-01 8:26 ` Junio C Hamano
2006-02-01 9:59 ` Randal L. Schwartz
2006-02-01 20:48 ` Junio C Hamano
2006-02-01 17:11 ` Linus Torvalds
2006-02-01 17:18 ` Nicolas Pitre
2006-02-01 20:27 ` Junio C Hamano
2006-02-01 21:09 ` Linus Torvalds
2006-02-01 21:34 ` Nicolas Pitre
2006-02-01 21:59 ` Junio C Hamano
2006-02-01 22:25 ` Nicolas Pitre
2006-02-01 22:50 ` Junio C Hamano
2006-02-02 14:59 ` Andreas Ericsson
2006-02-01 22:35 ` Linus Torvalds
2006-02-01 23:33 ` Two ideas for improving git's user interface Carl Worth
2006-02-02 0:38 ` Junio C Hamano
2006-02-02 1:16 ` Carl Worth
2006-02-02 2:25 ` Junio C Hamano
2006-02-03 23:57 ` Carl Worth
2006-02-02 1:23 ` Linus Torvalds
2006-02-02 1:44 ` Linus Torvalds
2006-02-04 8:03 ` Alan Chandler
2006-02-04 8:25 ` Junio C Hamano
2006-02-04 9:30 ` Alan Chandler
2006-02-04 0:20 ` Carl Worth
2006-02-04 2:08 ` Linus Torvalds
2006-02-06 23:42 ` Carl Worth
2006-02-02 12:31 ` Florian Weimer
2006-02-02 16:30 ` Carl Baldwin
2006-02-01 22:57 ` [Census] So who uses git? Daniel Barkalow
2006-02-01 22:00 ` Joel Becker
2006-02-01 19:32 ` H. Peter Anvin
-- strict thread matches above, loose matches on Subject: below --
2006-02-01 7:08 linux
2006-02-01 8:51 ` Junio C Hamano
2006-02-01 16:04 ` Linus Torvalds
2006-02-01 16:10 ` Alex Riesen
2006-02-01 21:27 ` linux
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.64.0601311623240.7301@g5.osdl.org \
--to=torvalds@osdl.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=barkalow@iabervon.org \
--cc=cnb@fc.hp.com \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
--cc=keithp@keithp.com \
--cc=martin.langhoff@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).