From: Jeff Hostetler Date: Mon, 03 May 2021 17:27:50 GMT Subject: Re: [PATCH] fsmonitor: only enable it in non-bare repositories Message-ID: <810dc60c-3730-b5f3-34f6-5cc2ddc9942a@jeffhostetler.com> In-Reply-To: <87mttbx6ie.fsf@evledraar.gmail.com> On 5/3/21 9:58 AM, Ævar Arnfjörð Bjarmason wrote: > > On Thu, Apr 29 2021, Johannes Schindelin via GitGitGadget wrote: > >> From: Johannes Schindelin >> >> The entire point of the FSMonitor is to monitor the worktree changes in >> a more efficient manner than `lstat()`ing all worktree files every time >> we refresh the index. >> >> But if there is no worktree, FSMonitor has nothing to monitor. >> >> So let's ignore if an FSMonitor is configured (e.g. in `~/.gitconfig`) >> and we're running in a repository without worktree. >> >> Signed-off-by: Johannes Schindelin >> --- ... >> >> base-commit: 14d50074ff19e68e7a8d718b22d138882087bbc9 > > This is surely a correct fix for now, but wouldn't it in the future also > be useful to run it in bare repositories e.g. to be able cache lookups > for non-existing loose objects? > No, the FSMonitor feature only expects data for paths within the working directory. (And is independent of whether the FS change data is provided by my fsmonitor--daemon or provided by a hook-based provider, such as Watchman.) The FSMonitor feature uses that data to shortcut scans of the working directory. There is no interaction with the contents of the .git/objects directory and I'm not sure how that would work. Jeff