From: Robin Rosenberg Date: Thu, 06 Dec 2012 01:09:20 GMT Subject: Re: [PATCH] Perform minimal stat comparison when some stat fields are not set Message-ID: <805916413.19333293.1354756160521.JavaMail.root@dewire.com> In-Reply-To: <7vhao0jc98.fsf@alter.siamese.dyndns.org> ----- Ursprungligt meddelande ----- > Robin Rosenberg writes: > > > At least JGit does sets uid, gid, ctime, ino and dev fields to zero > > on update. To Git this looks like the stat data does not match and > > a full file compare will be forced even it size and mtime match. > > This > > is in practice unnecessary. Sense JGit's presence by checking if > > ino > > and dev is zero. > > > > Signed-off-by: Robin Rosenberg > > --- > > read-cache.c | 21 +++++++++++++-------- > > 1 file changed, 13 insertions(+), 8 deletions(-) > > > > diff --git a/read-cache.c b/read-cache.c > > index fda78bc..6f13a22 100644 > > --- a/read-cache.c > > +++ b/read-cache.c > > @@ -197,21 +197,26 @@ static int ce_match_stat_basic(struct > > cache_entry *ce, struct stat *st) > > } > > if (ce->ce_mtime.sec != (unsigned int)st->st_mtime) > > changed |= MTIME_CHANGED; > > - if (trust_ctime && ce->ce_ctime.sec != (unsigned > > int)st->st_ctime) > > + > > + int minimal_stat = (ce->ce_ino == 0 && ce->ce_dev == 0); > > decl-after-stmt. Ok, btw. Which C version do we adhere to? C99 is quite old by now. > Besides, is it sane to do this unconditionally to affect people who > do not use JGit? > Would a config option like core.minstat be better? The name would imply no dynamic detection. - robin