Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

"Not in a git repo" returns

Open
#233 3 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 3 days

@kuishou68 is already working on this.

Since Apr 4, 2026.

  • #337 by @kuishou68 — open

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
70/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
git, lua, neovim

Research direction

Start in lua/fff/main.lua at find_in_git_root(), then inspect the initialization and scan behavior behind get_git_root(). Reproduce the command in a valid Git repository on Windows, and verify that startup scanning or the git-root fallback prevents the warning and opens the repository root.

Written by the indexing model from the issue text.

Description

triaged

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() reads fuzzy.get_git_root() immediately.
  • get_git_root() depends on async initial scan state.
  • On startup, scan state can still be empty, so git_root is nil even in a repo.

Successful mitigation

  • Wait for initial scan before reading git root.
  • If scan is not ready or git_root is empty, fall back to:
    • git rev-parse --show-toplevel in current cwd.
  • 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)
end
Dominant language
Rust
Stars
11.2k
Forks
473
Avg merge
2d 7h
Merged PRs (30d)
32

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dmtrKovalenko/fff

All issues in dmtrKovalenko/fff

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.