Re: [PATCH] fsmonitor: only enable it in non-bare repositories
- From
- Jeff Hostetler <git@jeffhostetler.com>
- Date
- May 3, 2021, 17:27 UTC
- 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:
Show 16 quoted lines
> > On Thu, Apr 29 2021, Johannes Schindelin via GitGitGadget wrote: > >> From: Johannes Schindelin <johannes.schindelin@gmx.de> >> >> 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 <johannes.schindelin@gmx.de> >> ---
...
Show 7 quoted lines
>> >> 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