git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 6/6] fsmonitor: Use fsmonitor data in `git diff`

From
Ben Peart <peartben@gmail.com>
Date
Jan 8, 2018, 20:58 UTC
Message-ID
<6f7b31f7-3532-a7b4-5846-d2994dcb8795@gmail.com>
In-Reply-To
<xmqqefn4aqt8.fsf@gitster.mtv.corp.google.com>
On 1/5/2018 5:22 PM, Junio C Hamano wrote:
Show 26 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
>>> diff --git a/diff-lib.c b/diff-lib.c
>>> index 8104603a3..13ff00d81 100644
>>> --- a/diff-lib.c
>>> +++ b/diff-lib.c
>>> @@ -95,6 +95,9 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
>>>   
>>>   	diff_set_mnemonic_prefix(&revs->diffopt, "i/", "w/");
>>>   
>>> +	if (!(option & DIFF_SKIP_FSMONITOR))
>>> +		refresh_fsmonitor(&the_index);
>>> +
>>>   	if (diff_unmerged_stage < 0)
>>>   		diff_unmerged_stage = 2;
>>
>> I read over this hunk five times, and only now am I able to wrap my head
>> around this: if we do *not* want to skip the fsmonitor data, we refresh
>> the fsmonitor data in the index.
>>
>> That feels a bit like an unneeded double negation. Speaking for myself, I
>> would prefore `DIFF_IGNORE_FSMONITOR` instead, it would feel less like a
>> double negation then. But I am not a native speaker, so I might be wrong.
> 
> I do find the logic a bit convoluted with double negative.
> 
It's great to see more use of the fsmonitor data.  Thanks for doing this!

I agree with the sentiment that the logic as written is confusing. I'll also point out that DIFF_IGNORE_FSMONITOR would be more consistent with the similar CE_MATCH_IGNORE_FSMONITOR flag and logic.

I'm also confused why we would not want to use the fsmonitor data in the 'add' case. When would you ever need to add a file that had not been modified?

Previous: Junio C HamanoNext: Alex Vandiver
Message 6 of 15 in “Minor fsmonitor bugfixes, use with `git diff`”
  1. 0/6 Minor fsmonitor bugfixes, use with `git diff`Alex Vandiver, Jan 3, 2018
  2. 1/6 Fix comments to agree with argument nameAlex Vandiver, Jan 3, 2018
  3. 6/6 fsmonitor: Use fsmonitor data in `git diff`Alex Vandiver, Jan 3, 2018
  4. Johannes SchindelinJan 4, 2018
  5. Junio C HamanoJan 5, 2018
  6. Ben PeartJan 8, 2018
  7. 5/6 fsmonitor: Remove debugging lines from t/t7519-status-fsmonitor.shAlex Vandiver, Jan 3, 2018
  8. 2/6 fsmonitor: Stop inline'ing mark_fsmonitor_valid / _invalidAlex Vandiver, Jan 3, 2018
  9. Johannes SchindelinJan 4, 2018
  10. Ben PeartJan 8, 2018
  11. 4/6 fsmonitor: Make output of test-dump-fsmonitor more conciseAlex Vandiver, Jan 3, 2018
  12. Johannes SchindelinJan 4, 2018
  13. Ben PeartJan 8, 2018
  14. 3/6 fsmonitor: Update helper tool, now that flags are filled laterAlex Vandiver, Jan 3, 2018
  15. Johannes SchindelinJan 4, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.