Detecting when bulk file-system operations complete
- From
- Drew Noakes <drew@drewnoakes.com>
- Date
- Mar 31, 2021, 03:39 UTC
- Message-ID
- <CAJd66x6XT7m5Njg2kRyGJ80rU6WNcLifijS98=onJeBz+74rrA@mail.gmail.com>
Hi,
I develop IDE tooling that watches a repo's workspace and reacts to changes.
Bulk file-system changes (i.e. branch switch, rebase, merge, cherry-pick) trigger lots of file system events, and my tooling should ignore intermediary updates. Currently I debounce events with a fixed time span, but would like a more reliable and performant approach to scheduling this reactive work.
Can this be done by monitoring the GITDIR in some way? For example, is there a file that's present when these operations are in flight, and which is removed when they complete?
If an operation is interrupted (i.e. merge or rebase that hits a conflict) my tooling should consider the bulk operation as complete. This means that detecting a git-rebase-todo file or rebase-merge/rebase-apply folder is not adequate.
Any help appreciated. Thanks!
Drew.