git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Carl Worth <cworth@cworth.org>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Junio C Hamano <junkio@cox.net>, Nicolas Pitre <nico@cam.org>,
	Theodore Tso <tytso@mit.edu>, Andreas Ericsson <ae@op5.se>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	git@vger.kernel.org
Subject: Re: [PATCH 0/2] Making "git commit" to mean "git commit -a".
Date: Thu, 30 Nov 2006 16:13:24 -0800	[thread overview]
Message-ID: <873b80tqvv.wl%cworth@cworth.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0611301520370.3513@woody.osdl.org>

[-- Attachment #1: Type: text/plain, Size: 3059 bytes --]

On Thu, 30 Nov 2006 15:40:58 -0800 (PST), Linus Torvalds wrote:
> I like the fact that when you do "git commit filename", it really will
> commit _only_ that file, not the other files you added. It's logical.
>
> So you can do
>
> 	echo a > file-a
> 	echo b > file-b
> 	git add file-a file-b
>
> 	git commit file-a

But, wait a second. What if I do my typo fix to file-a in between that
"git add" and the "git commit". Why should "git commit" insist so
vehemently on committing the _old_ state of file-a while "git commit
file-a" so happily commits the _new_ state?

I'm really not seeing conceptual consistency to what "commit <files>"
does compared to "commit".

The "commit <files>" case is a special-case of "commit -a" while
"commit" is just plain different. See?

I do like the direction Nico is going with "git add" and his little
tutorial. I think the first part of that, (without the twists), could
make a very nice introduction to git.

The "twists" part though is quite a nightmare, and "twists on twists"
is something that should be left to B-grade screenwriters, not
technical writers, (nothing against Nico there---the stuff is really
confusing).

But dropping back to the old default for "git commit explicit/file"
really would only make things worse.

>  - "git commit" on its own:
>
>     This is for things where you prepared things earlier: notably a merge,
>     for example.

For "notably a merge", how often is this not equivalent to "commit -a"
in your view?

>     But it might be the "--amend" case too, where you simply
>     don't want to change any of the working tree, just the commit message.

Personally, I think I use --amend to change the tree of the last
commit as often as I change just the message. Regardless of the
relative frequency, I definitely use it often for both of those modes,
so both should be supported.

>  - "git commit explicit/file anotherfile"
>
>    This is great (and I use it) exactly for when you have random other
>    additions in your tree that are brewing, and you just want to commit a
>    particular fix that takes precedence.

As I mention above, this usage is exactly "commit -a" but restricted
to just a few paths. Why isn't it just as brain-damaged to take
contents from the working tree instead of the index here as in the
case of my "add; fix typo; commit" example?

>  - "git commit -a"
>
>    Sure, this is the common case, but just how painful is it to type those
>    extra few characters?

If we all agree it's the most common, then why isn't it the default?!
It's the right thing for after resolving a conflicted merge, (since
the working tree is where the user _first_ resolves things, before the
changes make it to the index), the command is consistent with the
behavior of "git commit explicit/file", and the existing "git commit"
behavior would still be available in the rare cases it's desired, (and
then, how painful would it be to type the few extra characters to ask
for that?).

I know, I know. I said I'd give up and yet I keep harping on this
stuff. I'm hopeless.

-Carl

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2006-12-01  0:14 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-27 21:31 [PATCH/RFC] "init-db" can really be just "init" Nicolas Pitre
2006-11-27 22:05 ` Junio C Hamano
2006-11-27 22:40   ` Hyphens and hiding core commands (was: "init-db" can really be just "init") Carl Worth
2006-11-27 23:59     ` Hyphens and hiding core commands Junio C Hamano
2006-11-28  0:23       ` Carl Worth
2006-11-28  0:42         ` Junio C Hamano
2006-11-28  1:35           ` Carl Worth
2006-11-28  2:18             ` Junio C Hamano
2006-11-28  5:40               ` Theodore Tso
2006-11-28  9:15                 ` Junio C Hamano
2006-11-29  7:14                   ` Michael S. Tsirkin
2006-11-28  6:59               ` [PATCH 0/2] Making "git commit" to mean "git commit -a" Junio C Hamano
2006-11-28 10:26                 ` Andy Whitcroft
2006-11-28 13:00                 ` Josef Weidendorfer
2006-11-28 13:23                   ` Jakub Narebski
2006-11-28 18:18                 ` Carl Worth
2006-11-29  3:06                   ` Junio C Hamano
2006-11-29  4:33                     ` Nicolas Pitre
2006-11-29  7:44                       ` Junio C Hamano
2006-11-29 18:08                         ` Nicolas Pitre
2006-11-29 18:18                           ` Jakub Narebski
2006-11-29 19:12                             ` Steven Grimm
2006-11-29 19:30                               ` Jakub Narebski
2006-11-29 18:53                           ` Junio C Hamano
2006-11-29 19:09                             ` Steven Grimm
2006-11-29 20:01                               ` Johannes Schindelin
2006-11-29 20:39                                 ` Junio C Hamano
2006-11-29 21:50                                   ` xdl_merge(), was " Johannes Schindelin
2006-11-30  5:24                                   ` Seth Falcon
2006-11-29 23:37                         ` Carl Worth
2006-11-29 23:53                           ` Johannes Schindelin
2006-11-30  1:03                           ` Junio C Hamano
2006-11-30  1:22                             ` Junio C Hamano
2006-11-30  1:58                               ` Steven Grimm
2006-11-30  2:04                                 ` Sam Vilain
2006-11-30  2:12                                 ` Junio C Hamano
2006-11-30  2:11                               ` Johannes Schindelin
2006-11-30  3:10                                 ` Linus Torvalds
2006-11-30 10:27                                   ` Johannes Schindelin
2006-11-30 11:09                                   ` Andreas Ericsson
2006-11-30 15:58                                     ` Linus Torvalds
2006-11-30 16:40                                       ` Theodore Tso
2006-11-30 17:13                                         ` Linus Torvalds
2006-11-30 17:37                                           ` Nicolas Pitre
2006-11-30 18:38                                             ` Carl Worth
2006-11-30 18:47                                               ` Jakub Narebski
2006-11-30 19:04                                                 ` Carl Worth
2006-12-01  8:44                                                   ` Andreas Ericsson
2006-12-01  9:31                                                     ` Han-Wen Nienhuys
2006-11-30 18:51                                               ` Carl Worth
2006-11-30 19:55                                                 ` Linus Torvalds
2006-11-30 20:47                                                   ` Nicolas Pitre
2006-11-30 21:03                                                     ` Linus Torvalds
2006-11-30 21:16                                                       ` Jakub Narebski
2006-11-30 21:37                                                         ` Carl Worth
2006-11-30 21:41                                                           ` Michael K. Edwards
2006-11-30 21:50                                                             ` Carl Worth
2006-11-30 21:58                                                               ` Jakub Narebski
2006-11-30 22:26                                                                 ` Johannes Schindelin
2006-11-30 22:07                                                           ` Josef Weidendorfer
2006-11-30 22:25                                                           ` Johannes Schindelin
2006-11-30 22:37                                                             ` Nicolas Pitre
2006-11-30 22:31                                                           ` Nicolas Pitre
2006-11-30 22:47                                                           ` Junio C Hamano
2006-12-01  8:34                                                       ` Andy Parkins
2006-12-01 23:33                                                         ` Alan Chandler
2006-11-30 21:19                                                     ` Junio C Hamano
2006-11-30 22:21                                                       ` Nicolas Pitre
2006-11-30 23:02                                                         ` Junio C Hamano
2006-11-30 23:40                                                           ` Linus Torvalds
2006-12-01  0:13                                                             ` Carl Worth [this message]
2006-12-01  0:21                                                               ` Linus Torvalds
2006-12-01  1:10                                                                 ` Carl Worth
2006-12-01  1:32                                                                   ` Linus Torvalds
2006-12-01  2:08                                                                     ` Carl Worth
2006-12-01  2:44                                                                       ` Linus Torvalds
2006-12-01  3:40                                                                         ` Carl Worth
2006-12-01  3:52                                                                         ` Michael K. Edwards
2006-12-01  0:24                                                             ` Junio C Hamano
     [not found]                                                           ` <Pine.LNX.4. 64.0611301520370.3513@woody.osdl.org>
2006-12-01  0:06                                                             ` Jakub Narebski
2006-12-01  1:20                                                           ` Nicolas Pitre
2006-12-01  8:59                                                         ` Andreas Ericsson
2006-12-01 23:36                                                           ` Alan Chandler
     [not found]                                                   ` <7vac28h898.fsf@assigned-by-dhcp.cox.net>
2006-11-30 22:46                                                     ` Nicolas Pitre
2006-11-30 22:55                                                     ` Johannes Schindelin
2006-11-30 21:33                                                 ` Robert Shearman
2006-11-30 21:41                                                   ` Jakub Narebski
2006-12-01 18:27                                                     ` Shawn Pearce
2006-12-02  7:48                                                     ` Marco Costalba
2006-11-30 18:09                                           ` Carl Worth
2006-11-30 18:33                                             ` Linus Torvalds
2006-11-30  0:52                     ` Daniel Barkalow
2006-11-30 12:23                 ` Salikh Zakirov
2006-11-30 13:16                   ` Jakub Narebski
2006-11-30 15:15                     ` Seth Falcon
2006-11-30 15:50                       ` Nguyen Thai Ngoc Duy
2006-11-30 16:03                         ` Seth Falcon
2006-11-30 16:05                       ` Jakub Narebski
2006-11-30 17:13                   ` Andy Whitcroft
2006-11-28  7:00               ` [PATCH 1/2] git-commit: prepare to make '-a' behaviour the default Junio C Hamano
2006-11-28  7:00               ` [PATCH 2/2] git-commit: make '-a' " Junio C Hamano
2006-11-28  9:09                 ` Jakub Narebski
2006-11-27 23:36   ` [PATCH/RFC] "init-db" can really be just "init" Johannes Schindelin
2006-11-28 10:45   ` Han-Wen Nienhuys

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=873b80tqvv.wl%cworth@cworth.org \
    --to=cworth@cworth.org \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=ae@op5.se \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --cc=nico@cam.org \
    --cc=torvalds@osdl.org \
    --cc=tytso@mit.edu \
    /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).