All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Riesen <raa.lkml@gmail.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Junio C Hamano <gitster@pobox.com>,
	Johannes Sixt <j.sixt@viscovery.net>,
	git@vger.kernel.org
Subject: Re: [PATCH] Build configuration to skip ctime for modification test
Date: Fri, 25 Jul 2008 07:55:47 +0200	[thread overview]
Message-ID: <20080725055547.GA3699@blimp.local> (raw)
In-Reply-To: <alpine.LFD.1.10.0807241854580.5249@nehalem.linux-foundation.org>

Linus Torvalds, Fri, Jul 25, 2008 04:00:29 +0200:
> On Wed, 23 Jul 2008, Alex Riesen wrote:
> > 
> > It is not that it is broken. We just don't need it, because the st_mode
> > is not used, and the rest of inode information is not used anyway.
> 
> That is NOT why git checks the ctime.
> 
> Git checks the ctime not because it cares about the inode state being 
> modified per se: since it can see that _directly_ - so why should it care 
> about inode state like st_mode?
> 
> No, git checks ctime because it in general tries to make it VERY VERY hard 
> for people to try to "fake out" git and replace files from underneath it 
> without git noticing.
> 
> It's much easier and much more common for tools to restore 'mtime' when 
> they do some operation on a file than it is for them to restore 'ctime'.
> 
> For example, if you rsync files between two hosts, the '-t' flag will make 
> rsync try to keep the mtimes in sync (and it's part of '-a', which is the 
> common form that you'd use for rsync). So if you only look at mtime and 
> size, you often miss the fact that the file has actually been messed with!
> 
> Looking at ctime gets around a number of those things. Of course, it can 
> cause git to be _too_ eager in thinking that a file is modified, and an 
> example of that is the insane indexing that 'beagle' does, which actually 
> modifies the files by adding inode extended attributes to them and thus 
> changes ctime due to the indexing. But in general it's a lot better to be 
> too careful than to miss the fact that somebody changed the file.
> 

But, given the fact, that somewhere sometimes its very-very annoying
to have even one (un)changed file, something must be done about it.
Maybe just direct

    # my .gitconfig for Windows machines with GDS
    [core]
	filemode = false
	trustctime = false
	logallrefupdates = false
    [pack]
	threads = 1

    etc...

  reply	other threads:[~2008-07-25 19:21 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-21 17:35 [PATCH] Fix update-index --refresh for submodules if stat(2) returns st_size 0 Alex Riesen
2008-07-21 18:20 ` Johannes Schindelin
2008-07-21 19:43   ` Alex Riesen
2008-07-21 23:26     ` Johannes Schindelin
2008-07-22  8:07     ` Junio C Hamano
2008-07-22 16:49       ` Alex Riesen
2008-07-22  7:17 ` Johannes Sixt
2008-07-22 16:46   ` Alex Riesen
2008-07-22 16:59     ` Johannes Sixt
2008-07-22 17:28   ` Junio C Hamano
2008-07-22 19:39     ` [PATCH] Build configuration to skip ctime for modification test Alex Riesen
2008-07-22 20:17       ` Johannes Schindelin
2008-07-22 20:31         ` Alex Riesen
2008-07-23  0:12           ` Junio C Hamano
2008-07-23 16:46             ` Alex Riesen
2008-07-23 16:59               ` Johannes Schindelin
2008-07-23 19:16                 ` Alex Riesen
2008-07-25  2:00                   ` Linus Torvalds
2008-07-25  5:55                     ` Alex Riesen [this message]
2008-07-26  0:57                       ` Johannes Schindelin
2008-07-26 15:38                         ` [PATCH] Make use of stat.ctime configurable Alex Riesen
2008-07-27 19:46                           ` Junio C Hamano
2008-07-27 19:46                           ` Junio C Hamano
2008-07-28  6:31                             ` Alex Riesen
2008-07-28 16:04                               ` David Brown
2008-07-28 16:09                                 ` Linus Torvalds
2008-07-28 21:49                                   ` Alex Riesen
2008-07-29  1:16                                   ` Junio C Hamano
2008-07-29  1:23                                     ` Linus Torvalds
2008-07-29  1:31                                       ` Junio C Hamano
2008-07-29  1:41                                         ` David Brown
2008-07-29  2:49                                           ` Junio C Hamano
2008-07-29 10:45                                           ` Johannes Schindelin
2008-07-29  1:55                                         ` Linus Torvalds
2008-07-29  2:01                                           ` Linus Torvalds
2008-07-29 10:49                                       ` Johannes Schindelin
2008-07-28 16:20                               ` Petr Baudis
2008-07-28 21:47                                 ` [PATCH] Improve the placement of core.trustctime in the documentation Alex Riesen
2008-07-29  6:23                                   ` Junio C Hamano
2008-07-24 19:00             ` [PATCH] Do not use ctime if file mode is not used Alex Riesen
2008-07-23 16:00           ` git svn throws locale related error when built from source Anton Mostovoy

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=20080725055547.GA3699@blimp.local \
    --to=raa.lkml@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j.sixt@viscovery.net \
    --cc=torvalds@linux-foundation.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.