From 7eb91daa43d5c6b318be699e2af770904625a4d6 Mon Sep 17 00:00:00 2001 From: Tibor Schmidt Date: Tue, 6 Aug 2024 01:31:38 +0200 Subject: [PATCH] fix: git root search infinite loop on windows (issue: #126) --- lua/gp/helper.lua | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lua/gp/helper.lua b/lua/gp/helper.lua index b3f1c39c..1864bde0 100644 --- a/lua/gp/helper.lua +++ b/lua/gp/helper.lua @@ -175,13 +175,18 @@ _H.find_git_root = function(path) if path then cwd = vim.fn.fnamemodify(path, ":p:h") end - while cwd ~= "/" do + + for _ = 0, 1000 do local files = vim.fn.readdir(cwd) if vim.tbl_contains(files, ".git") then logger.debug("found git root: " .. cwd) return cwd end - cwd = vim.fn.fnamemodify(cwd, ":h") + local parent = vim.fn.fnamemodify(cwd, ":h") + if parent == cwd then + break + end + cwd = parent end logger.debug("git root not found") return ""