Web lists-archives.com

Re: [PATCH] doc: improve grammar in git-update-index




Philip Oakley <philipoakley@xxxxxxx> writes:

> On 14/12/2018 21:25, Anthony Sottile wrote:
>> Signed-off-by: Anthony Sottile <asottile@xxxxxxxxx>
>> ---
>>   Documentation/git-update-index.txt | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt
>> index 1c4d146a4..9c03ca167 100644
>> --- a/Documentation/git-update-index.txt
>> +++ b/Documentation/git-update-index.txt
>> @@ -326,7 +326,7 @@ inefficient `lstat(2)`.  If your filesystem is one of them, you
>>   can set "assume unchanged" bit to paths you have not changed to
>>   cause Git not to do this check.  Note that setting this bit on a
>>   path does not mean Git will check the contents of the file to
>> -see if it has changed -- it makes Git to omit any checking and
>> +see if it has changed -- it means Git will skip any checking and
>>   assume it has *not* changed.  When you make changes to working
>>   tree files, you have to explicitly tell Git about it by dropping
>>   "assume unchanged" bit, either before or after you modify them.
>
> Doesn't this also need the caveat that it is _a promise by the user_
> that they will not change the file, such that Git doesn't need to keep
> checking, and that occasionally Git will check, or may perform
> unexpected actions if the user has the wrong mental model.

True.  

Setting bit _allows_, not necessarily "makes", Git to assume that
the path will not be modified by the user when it is convenient for
Git to make that assumption (e.g. instead of reading a blob out of
the object database, Git may mmap the corresponding working tree
file when they are the same and Git thinks using the latter is more
efficient).  When Git finds it more convenient to check if they are
the same, the bit does not stop Git from doing so.

So in that sense, both the text before and after the patch is bad.

	Note that setting this bit on a path does not mean Git will
	always check, or will never check, the contents of the file
	to see if it has changed.  The bit allows Git to assume that
	the file in the working tree is identical to what is in the
	index when it is convenient to do so.  When you make
	changes...

or something like that.