Lukas Wirth
fb813f70d6
worktree: Suppress bare .git events explained by filtered sibling events ( #61636 )
...
Fixes an infinite git-rescan loop on Windows introduced by #59876 .
On Windows, creating or deleting a file directly inside .git updates the
directory's last-write time, so ReadDirectoryChangesW reports a bare
.git Changed event alongside the file's own event. Since #59876 , bare
.git events schedule a git rescan (to cope with coalesced FSEvents on
macOS), so every filtered-out lock-file event still triggered a rescan
through its paired bare event. Because a rescan's own `git diff
--numstat HEAD` can take .git/index.lock (even under
--no-optional-locks, e.g. in jj-colocated repos whose index never
refreshes clean), each rescan re-triggered the next one, spawning ~9 git
processes per cycle, ~4 cycles/sec, indefinitely.
Bare .git events are now deferred while processing an event batch and
only trigger a rescan when the batch contains no filtered event for the
same git dir that explains the directory change. A standalone bare .git
event (the macOS coalescing case #59876 addressed) still triggers a
rescan, as does any batch containing a meaningful .git change.
Release Notes:
- N/A or Added/Fixed/Improved ...
2026-07-25 10:18:26 +00:00
..
2026-07-21 14:55:19 +00:00
2026-06-22 09:04:29 +00:00
2026-07-20 16:17:02 +00:00
2026-07-13 16:37:28 +00:00
2026-07-24 14:03:06 +00:00
2026-07-24 11:22:33 +00:00
2026-07-24 12:48:58 +00:00
2026-06-08 14:57:47 +00:00
2026-07-24 12:52:03 +00:00
2026-06-18 20:51:36 +00:00
2026-07-24 19:56:07 +00:00
2026-07-20 16:14:26 +00:00
2026-06-05 16:49:42 +00:00
2026-07-07 10:23:28 +00:00
2026-05-01 22:33:54 +00:00
2026-06-07 16:55:18 +00:00
2026-07-24 19:56:07 +00:00
2026-06-18 02:47:10 +00:00
2026-06-01 04:40:13 +00:00
2026-07-20 16:17:02 +00:00
2026-07-25 03:39:45 +00:00
2026-06-29 20:21:46 +00:00
2026-07-18 19:56:01 +00:00
2026-07-23 22:46:06 +00:00
2026-02-25 08:12:04 +01:00
2026-07-21 13:20:31 +00:00
2026-07-14 11:40:24 +00:00
2026-07-15 13:14:36 +00:00
2026-07-06 22:12:33 +00:00
2026-07-25 03:39:45 +00:00
2026-07-22 16:57:34 +00:00
2026-06-05 10:32:57 +00:00
2026-07-21 09:13:56 +00:00
2026-06-05 10:32:57 +00:00
2026-05-29 07:06:57 +00:00
2026-06-15 03:26:51 +00:00
2026-07-03 18:24:54 +00:00
2026-07-15 13:14:36 +00:00
2026-05-28 15:00:31 +00:00
2026-07-07 10:27:57 +00:00
2026-07-14 21:47:47 +00:00
2026-04-02 17:06:57 -03:00
2026-07-20 04:08:28 +00:00
2026-06-15 10:55:39 +00:00
2026-04-29 10:27:47 +00:00
2026-04-24 10:29:51 +00:00
2026-05-13 23:35:10 +00:00
2026-07-23 11:22:43 +00:00
2026-06-02 13:29:23 +00:00
2026-07-23 05:11:37 +00:00
2026-07-13 16:37:28 +00:00
2026-07-08 20:54:51 +00:00
2026-07-16 09:41:21 +00:00
2026-07-08 12:36:29 +00:00
2026-07-15 08:33:25 +00:00
2026-07-18 18:48:49 +00:00
2026-07-15 13:14:36 +00:00
2026-07-15 13:14:36 +00:00
2026-07-24 22:19:11 +00:00
2026-06-05 19:24:28 +00:00
2026-07-13 16:37:28 +00:00
2026-04-07 12:28:19 -03:00
2026-02-28 21:47:30 -05:00
2026-06-29 15:58:53 +00:00
2026-02-19 18:57:49 +01:00
2026-02-28 22:42:19 -05:00
2026-07-23 11:22:43 +00:00
2026-07-10 11:51:16 +00:00
2026-07-14 15:02:41 +00:00
2026-07-23 11:22:43 +00:00
2026-06-23 09:33:47 +00:00
2026-07-22 22:39:21 +00:00
2026-04-18 06:34:19 +00:00
2026-05-04 06:30:47 +00:00
2026-07-21 11:59:11 +00:00
2026-07-24 16:50:57 +00:00
2026-02-19 18:57:49 +01:00
2026-06-12 12:27:28 +00:00
2026-07-15 08:33:25 +00:00
2026-07-23 15:45:21 +00:00
2026-06-15 08:48:19 +00:00
2026-07-23 15:45:21 +00:00
2026-07-13 16:37:28 +00:00
2026-07-09 12:05:50 +00:00
2026-07-25 00:03:32 +00:00
2026-07-22 12:46:55 +00:00
2026-07-21 07:58:16 +00:00
2026-07-08 15:52:48 +00:00
2026-03-24 11:05:12 +00:00
2026-04-24 08:58:26 +00:00
2026-06-16 13:47:55 +00:00
2026-06-16 13:47:55 +00:00
2026-07-22 13:12:36 +00:00
2026-07-21 07:58:16 +00:00
2026-07-24 21:44:30 +00:00
2026-07-21 11:27:16 +00:00
2026-07-20 13:21:18 +00:00
2026-07-14 15:29:30 +00:00
2026-07-20 12:48:40 +00:00
2026-07-21 13:16:56 +00:00
2026-04-22 22:22:10 +00:00
2026-06-12 12:27:28 +00:00
2026-06-22 18:20:57 +00:00
2026-05-05 22:41:13 +00:00
2026-06-25 17:30:12 +00:00
2026-07-14 10:07:58 +00:00
2026-07-24 08:32:03 +00:00
2026-07-23 11:22:43 +00:00
2026-07-23 11:22:43 +00:00
2026-07-24 16:53:45 +00:00
2026-07-24 16:53:45 +00:00
2026-07-24 19:56:07 +00:00
2026-07-24 16:53:45 +00:00
2026-03-25 12:07:34 -06:00
2026-07-23 11:22:43 +00:00
2026-07-23 11:22:43 +00:00
2026-07-23 11:22:43 +00:00
2026-07-13 16:37:28 +00:00
2026-07-03 09:50:42 +00:00
2026-07-03 09:50:42 +00:00
2026-06-29 13:24:33 +00:00
2026-07-10 15:32:21 +00:00
2026-07-18 08:04:17 +00:00
2026-07-15 14:36:43 +00:00
2026-07-24 00:39:01 +00:00
2026-07-22 09:10:58 +00:00
2026-07-21 07:58:16 +00:00
2026-06-22 15:42:12 +00:00
2026-07-14 15:02:41 +00:00
2026-06-02 12:03:05 +00:00
2026-07-21 14:51:27 +00:00
2026-07-19 05:36:35 +00:00
2026-02-20 13:36:04 +00:00
2026-07-14 16:21:54 +00:00
2026-05-29 07:06:57 +00:00
2026-05-14 21:03:56 +00:00
2026-06-23 09:21:31 +00:00
2026-07-24 07:54:03 +00:00
2026-07-24 16:53:45 +00:00
2026-07-22 08:42:34 +00:00
2026-06-23 23:01:58 +00:00
2026-07-13 12:13:49 +00:00
2026-07-17 11:41:08 +00:00
2026-07-08 12:10:32 +00:00
2026-05-12 15:52:52 +00:00
2026-07-15 12:17:10 +00:00
2026-07-15 08:33:25 +00:00
2026-07-22 08:42:34 +00:00
2026-07-14 17:18:23 +00:00
2026-06-10 12:02:29 +00:00
2026-06-13 05:21:05 +00:00
2026-07-24 09:48:03 +00:00
2026-05-05 22:41:13 +00:00
2026-07-18 19:56:01 +00:00
2026-07-23 11:22:43 +00:00
2026-06-05 19:46:05 +00:00
2026-07-23 15:45:21 +00:00
2026-07-23 22:46:06 +00:00
2026-07-22 15:25:22 +00:00
2025-12-15 13:30:13 +00:00
2026-05-15 21:17:43 +00:00
2026-07-21 14:15:32 +00:00
2026-04-16 16:36:09 -07:00
2026-07-24 15:34:17 +00:00
2026-07-25 07:32:05 +00:00
2026-07-03 01:00:54 +00:00
2026-05-27 10:31:53 +00:00
2026-07-16 09:41:21 +00:00
2026-07-10 22:51:41 +00:00
2026-07-14 08:59:10 +00:00
2026-03-27 14:41:25 +01:00
2026-07-24 15:45:41 +00:00
2026-07-07 11:48:14 +00:00
2026-07-24 07:54:03 +00:00
2026-07-24 12:48:58 +00:00
2026-07-14 15:02:41 +00:00
2026-06-23 09:33:47 +00:00
2026-07-21 06:04:06 +00:00
2026-05-05 16:25:56 +00:00
2026-07-24 12:52:03 +00:00
2026-07-20 11:17:43 +00:00
2026-04-29 10:27:47 +00:00
2026-07-23 04:49:39 +00:00
2026-04-24 10:29:51 +00:00
2026-05-27 19:33:04 +00:00
2026-05-27 10:31:53 +00:00
2026-07-20 04:08:28 +00:00
2026-03-31 08:06:37 -06:00
2026-05-04 06:30:47 +00:00
2026-06-23 09:33:47 +00:00
2026-06-09 22:46:22 +00:00
2026-07-23 11:22:43 +00:00
2025-11-07 11:36:05 +00:00
2026-07-23 03:47:47 +00:00
2026-07-25 07:32:05 +00:00
2026-07-19 05:36:35 +00:00
2026-07-01 17:36:23 +00:00
2026-03-27 14:41:25 +01:00
2026-03-27 14:41:25 +01:00
2026-06-23 09:33:47 +00:00
2026-07-02 05:04:24 +00:00
2026-05-28 19:43:30 +00:00
2026-07-25 03:39:45 +00:00
2026-07-13 16:37:28 +00:00
2026-07-23 03:38:00 +00:00
2026-07-01 04:25:40 +00:00
2026-05-29 07:06:57 +00:00
2026-06-08 14:59:39 +00:00
2026-07-23 07:53:27 +00:00
2026-07-23 07:54:43 +00:00
2026-03-19 12:53:26 -04:00
2026-05-27 10:31:53 +00:00
2026-06-09 12:06:49 +00:00
2026-03-27 14:41:25 +01:00
2026-05-01 22:33:54 +00:00
2026-07-25 03:39:45 +00:00
2026-07-25 10:18:26 +00:00
2026-02-19 18:57:49 +01:00
2026-05-29 16:28:27 +00:00
2026-07-24 15:34:17 +00:00
2026-07-20 11:17:21 +00:00
2026-04-02 17:06:57 -03:00
2026-04-02 17:06:57 -03:00
2026-07-18 18:48:49 +00:00
2026-07-01 15:18:54 +00:00
2026-05-28 20:19:17 +00:00
2026-05-28 20:19:17 +00:00