git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@osdl.org>
To: Carl Worth <cworth@cworth.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 17:32:22 -0800 (PST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0611301720240.3513@woody.osdl.org> (raw)
In-Reply-To: <871wnkh142.wl%cworth@cworth.org>



On Thu, 30 Nov 2006, Carl Worth wrote:
> 
> The difference there is very subtle and really does prevent a
> reasonable, "just ignore the index and you can use git comfortably".

If you want to ignore the index, you'd always use "git commit -a".

So what's your point?

> But it is strange, and I cannot see how the first case is at all useful.

The old argument by incredulity. The fact that you cannot see it doesnt' 
change the fact that I use it all the time. Usually not for the same file, 
but committing something that is different in the index and in the working 
tree is my normal behaviour - it's how any number of things work (like 
merging while you have dirty state, or applying patches while you have 
changes).

So, let me condense the argument:

 - your argument is that cannot understand how anybody would ever want to 
   use this.

That's really what it all boils down to. That's your ONLY argument. You 
didn't actually answer any of me explaining _why_ it's how it works, and 
why it _has_ to be why it works. Your argument just boils down to "I can't 
believe it's useful to be consistent".

My argument is:

 - the current behaviour is actually very powerful, and I've given 
   examples of when I actually do use it (and whether you know it or not, 
   they are also things you've probably done - the "pull from somebody 
   else with dirty files" is actually exactly the same thing, you just 
   never realized it just because it happened to be the same thing on two 
   different files)

 - the "git add file ; change file ; git commit" behaviour is absolutely 
   REQUIRED once you get the whole "git tracks content" logic. Doing 
   anything but committing the old version (the one you added) would be 
   illogical and wrong, because it's strictly against the whole POINT of 
   tracking content.

So. That's what it boils down to. Your personal incredulity against 
fundamental concepts and real usage.

The reason I like UNIX is that it has "fundamental concepts". And 
surprise, surprise, a lot of the same issues are at play in "git" too. 
Pretty much _all_ the behaviour (apart from actual _naming_ issues) really 
come from fundamental concepts, and _not_ doing special cases.

I guarantee you, in the end you're better off building a world-view on a 
coherent guiding logic, than on "personal incredulity" or "I can't believe 
that anybody would actually ever want to do that".

As an X developer, don't you get tired of hearing people saying "I can't 
believe anybody would ever want to use a network transparent protocol and 
do graphics from another machine"? The non-X people (and every single 
"let's replace X with something more efficient" discussion) always tend to 
take that approach. 

Same thing. It really doesn't matter what you think is "normal". What 
matters a lot more in the end is that you keep a coherent set of concepts, 
so that once you really learn the concepts, it all makes sense.

And in git, the over-arching concept for just about _anything_ is "git 
tracks contents, and filenames don't matter". The behaviour of "git add" 
and "git commit" is just a small detail in that whole picture.


  reply	other threads:[~2006-12-01  1:33 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
2006-12-01  0:21                                                               ` Linus Torvalds
2006-12-01  1:10                                                                 ` Carl Worth
2006-12-01  1:32                                                                   ` Linus Torvalds [this message]
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=Pine.LNX.4.64.0611301720240.3513@woody.osdl.org \
    --to=torvalds@osdl.org \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=ae@op5.se \
    --cc=cworth@cworth.org \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --cc=nico@cam.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).