Closed
Description
Description
Running the standard git watchman hook results in an infinite git refresh loop.
See "Using Watchman and the sample hook script" at https://github.blog/2022-06-29-improve-git-monorepo-performance-with-a-file-system-monitor/
Neovim version
NVIM v0.8.0
Build type: Release
LuaJIT 2.1.0-beta3
Operating system and version
Linux 6.0.6-arch1-1
nvim-tree version
Minimal config
vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvt-min/site]]
local package_root = "/tmp/nvt-min/site/pack"
local install_path = package_root .. "/packer/start/packer.nvim"
local function load_plugins()
require("packer").startup {
{
"wbthomason/packer.nvim",
"nvim-tree/nvim-tree.lua",
"nvim-tree/nvim-web-devicons",
-- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
},
config = {
package_root = package_root,
compile_path = install_path .. "/plugin/packer_compiled.lua",
display = { non_interactive = true },
},
}
end
if vim.fn.isdirectory(install_path) == 0 then
print "Installing nvim-tree and dependencies."
vim.fn.system { "git", "clone", "--depth=1", "https://github.com/wbthomason/packer.nvim", install_path }
end
load_plugins()
require("packer").sync()
vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua setup()]]
vim.opt.termguicolors = true
vim.opt.cursorline = true
-- MODIFY NVIM-TREE SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
_G.setup = function()
require("nvim-tree").setup {
log = {
enable = true,
truncate = true,
types = {
all = false,
config = false,
copy_paste = false,
dev = true,
diagnostics = false,
git = true,
profile = false,
watcher = true,
},
},
}
end
Steps to reproduce
cp .git/hooks/fsmonitor-watchman.sample .git/hooks/query-watchman
git config core.fsmonitor .git/hooks/query-watchman
nvim -nu /tmp/nvt-min.lua
:NvimTreeOpen
open any file
:w
Expected behavior
One debounced git refresh following write.
Actual behavior
Infinite loop of refreshes following watchman writing .git/.watchman-cookie-emperor-xxxxxx-yyy