On Fri, Aug 17, 2018 at 5:26 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > -- >8 -- > Subject: [PATCH] config.txt: clarify core.checkStat > > The description of this key does not really tell what the 'minimal' > mode checks and does not check. The description for the 'default' > mode is not much better and just says 'all fields', which is unclear > and is not even correct (e.g. we do not look at 'atime'). > > Spell out what are and what are not checked under the 'minimal' mode > relative to the 'default' mode to help those who want to decide if > they want to use the 'minimal' mode, also taking information about > this mode from the commit message of c08e4d5b5c (Enable minimal stat > checking - 2013-01-22). Looking good. This does make me want to adjust $GIT_DIR/index format to optionally not store extra fields if we know we're not going to use them. But that's a topic for another day. > Helped-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> > --- > Documentation/config.txt | 18 ++++++++++++++---- > 1 file changed, 14 insertions(+), 4 deletions(-) > > diff --git a/Documentation/config.txt b/Documentation/config.txt > index ab641bf5a9..933d719137 100644 > --- a/Documentation/config.txt > +++ b/Documentation/config.txt > @@ -449,10 +449,20 @@ core.untrackedCache:: > See linkgit:git-update-index[1]. `keep` by default. > > core.checkStat:: > - Determines which stat fields to match between the index > - and work tree. The user can set this to 'default' or > - 'minimal'. Default (or explicitly 'default'), is to check > - all fields, including the sub-second part of mtime and ctime. > + When missing or is set to `default`, many fields in the stat > + structure are checked to detect if a file has been modified > + since Git looked at it. When this configuration variable is > + set to `minimal`, sub-second part of mtime and ctime, the > + uid and gid of the owner of the file, the inode number (and > + the device number, if Git was compiled to use it), are > + excluded from the check among these fields, leaving only the > + whole-second part of mtime (and ctime, if `core.trustCtime` > + is set) and the filesize to be checked. > ++ > +There are implementations of Git that do not leave usable values in > +some fields (e.g. JGit); by excluding these fields from the > +comparison, the `minimal` mode may help interoperability when the > +same repository is used by these other systems at the same time. > > core.quotePath:: > Commands that output paths (e.g. 'ls-files', 'diff'), will > -- > 2.18.0-666-g63749b2dea > -- Duy