-
Notifications
You must be signed in to change notification settings - Fork 149
"Not in a git repo" returns #233
Copy link
Copy link
Open
Description
fff.nvim find_in_git_root regression
Error
- In a valid Git repository on Windows, running
find_in_git_root()shows:Not in a git repository
Cause
find_in_git_root()readsfuzzy.get_git_root()immediately.get_git_root()depends on async initial scan state.- On startup, scan state can still be empty, so
git_rootisnileven in a repo.
Successful mitigation
- Wait for initial scan before reading git root.
- If scan is not ready or
git_rootis empty, fall back to:git rev-parse --show-toplevelin currentcwd.
- This mitigation works in local testing.
Changed code
File: lua/fff/main.lua
function M.find_in_git_root()
local fuzzy = require('fff.core').ensure_initialized()
local wait_ok, scan_ready = pcall(fuzzy.wait_for_initial_scan, 5000)
if not wait_ok then
vim.notify('Failed to wait for initial scan', vim.log.levels.WARN)
end
local ok, git_root = pcall(fuzzy.get_git_root)
if not scan_ready or not ok or not git_root or git_root == '' then
local cwd = vim.fn.getcwd()
local result = vim.system({ 'git', 'rev-parse', '--show-toplevel' }, { cwd = cwd, text = true }):wait()
if result.code == 0 and result.stdout and result.stdout ~= '' then
git_root = result.stdout:gsub('%s+$', '')
end
end
if not git_root or git_root == '' then
vim.notify('Not in a git repository', vim.log.levels.WARN)
return
end
M.find_files_in_dir(git_root)
endReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels