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

Re: What's cooking in git.git (Jun 2021, #07; Wed, 30)

From
JHJeff Hostetler <git@jeffhostetler.com>
Date
Jul 1, 2021, 14:20 UTC
Message-ID
<4d72a3d6-397e-e55b-cc11-5591070d5e27@jeffhostetler.com>
In-Reply-To
<87r1gicfh1.fsf@evledraar.gmail.com>
On 7/1/21 9:42 AM, Ævar Arnfjörð Bjarmason wrote:
Show 66 quoted lines
> 
> On Wed, Jun 30 2021, Junio C Hamano wrote:
> 
>> * jh/builtin-fsmonitor (2021-05-24) 30 commits
>>   - t/perf: avoid copying builtin fsmonitor files into test repo
>>   - t7527: test status with untracked-cache and fsmonitor--daemon
>>   - p7519: add fsmonitor--daemon
>>   - t7527: create test for fsmonitor--daemon
>>   - fsmonitor: force update index after large responses
>>   - fsmonitor: enhance existing comments
>>   - fsmonitor--daemon: use a cookie file to sync with file system
>>   - fsmonitor--daemon: periodically truncate list of modified files
>>   - fsmonitor--daemon: implement handle_client callback
>>   - fsmonitor-fs-listen-macos: implement FSEvent listener on MacOS
>>   - fsmonitor-fs-listen-macos: add macos header files for FSEvent
>>   - fsmonitor-fs-listen-win32: implement FSMonitor backend on Windows
>>   - fsmonitor--daemon: create token-based changed path cache
>>   - fsmonitor--daemon: define token-ids
>>   - fsmonitor--daemon: add pathname classification
>>   - fsmonitor--daemon: implement daemon command options
>>   - fsmonitor-fs-listen-macos: stub in backend for MacOS
>>   - fsmonitor-fs-listen-win32: stub in backend for Windows
>>   - t/helper/fsmonitor-client: create IPC client to talk to FSMonitor Daemon
>>   - fsmonitor--daemon: implement client command options
>>   - fsmonitor--daemon: add a built-in fsmonitor daemon
>>   - fsmonitor: introduce `core.useBuiltinFSMonitor` to call the daemon via IPC
>>   - config: FSMonitor is repository-specific
>>   - help: include fsmonitor--daemon feature flag in version info
>>   - fsmonitor-ipc: create client routines for git-fsmonitor--daemon
>>   - fsmonitor--daemon: update fsmonitor documentation
>>   - fsmonitor--daemon: man page
>>   - simple-ipc: preparations for supporting binary messages.
>>   - Merge branch 'jk/perf-in-worktrees' into HEAD
>>   - Merge branch 'jh/simple-ipc' into jh/rfc-builtin-fsmonitor
>>
>>   An attempt to write and ship with a watchman equivalent tailored
>>   for our use.
>>
>>   What's the status of this one?
> 
> I think Johannes's reply to the last WC applies[1]:
> 
>      I am not Jeff, but I know that he is busy getting back to it, and
>      plans on submitting a third iteration.
> 
> FWIW I'm still curious about some details on the performance concerns
> that seem to have prompted this built-in fsmonitor endeavor, as I asked
> about (but didn't get a reply to) in [2].
> 
> Not as a "we shouldn't have this, let's keep using the hook", but just
> curiosity about why we've seemingly gotten such different performance
> numbers on the watchman hook v.s. a built-in approach.
> 
> I suspect (but don't know) that the reason is that the built-in is
> perhaps integrating differently with git somehow, in a way that we could
> retrofit the hook approach to also do (if anyone still cares about the
> hook approach).
> 
> In any case I'm interested in *why* the new approach is faster, given
> that I've done some testing (again, noted in [2]) that suggest that
> bottleneck in the previous pipeline wasn't at all what Jeff H. thought
> it was.
> 
> 1. https://lore.kernel.org/git/nycvar.QRO.7.76.6.2106171135530.57@tvgsbejvaqbjf.bet/#t
> 2. https://lore.kernel.org/git/87h7lgfchm.fsf@evledraar.gmail.com/
> 

A quick reply here of Junio's question. Yes, I'm working on a V3 to submit (any day now -- $DAYJOB notwithstanding (read: meetings)).

I'll push this up and then try to answer the perf questions.

Thanks for your patience. Jeff

Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 4 of 18 in “What's cooking in git.git (Jun 2021, #07; Wed, 30)”
  1. Junio C HamanoJun 30, 2021
  2. Felipe ContrerasJul 1, 2021
  3. Ævar Arnfjörð BjarmasonJul 1, 2021
  4. Jeff HostetlerJul 1, 2021
  5. Ævar Arnfjörð BjarmasonJul 1, 2021
  6. Junio C HamanoJul 1, 2021
  7. Ævar Arnfjörð BjarmasonJul 2, 2021
  8. Junio C HamanoJul 2, 2021
  9. Jeff KingJul 1, 2021
  10. Jeff KingJul 1, 2021
  11. Elijah NewrenJul 3, 2021
  12. Ævar Arnfjörð BjarmasonJul 5, 2021
  13. Jeff KingJul 5, 2021
  14. Phillip WoodJul 6, 2021
  15. Ævar Arnfjörð BjarmasonJul 6, 2021
  16. Junio C HamanoJul 6, 2021
  17. Han-Wen NienhuysJul 1, 2021
  18. Ævar Arnfjörð BjarmasonJul 1, 2021

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.