fix(#2382): git watcher handles worktrees and submodules, via --absolute-git-dir when it is available (#2389)
* fix(#2382): use --absolute-git-dir when available * fix(#2382): use --absolute-git-dir when available * fix(#2382): rename private git members, destroy git watchers on purge * fix(#2382): consistent naming of toplevel * fix(#2382): more doc and safety * fix(#2382): consistent naming of toplevel * fix(#2382): consistent naming of toplevel
This commit is contained in:
committed by
GitHub
parent
00741206c2
commit
28c3980b25
@@ -12,8 +12,8 @@ local function refresh_nodes(node, projects, unloaded_bufnr)
|
||||
Iterator.builder({ node })
|
||||
:applier(function(n)
|
||||
if n.open and n.nodes then
|
||||
local project_root = git.get_project_root(n.cwd or n.link_to or n.absolute_path)
|
||||
explorer_module.reload(n, projects[project_root] or {}, unloaded_bufnr)
|
||||
local toplevel = git.get_toplevel(n.cwd or n.link_to or n.absolute_path)
|
||||
explorer_module.reload(n, projects[toplevel] or {}, unloaded_bufnr)
|
||||
end
|
||||
end)
|
||||
:recursor(function(n)
|
||||
@@ -23,8 +23,8 @@ local function refresh_nodes(node, projects, unloaded_bufnr)
|
||||
end
|
||||
|
||||
function M.reload_node_status(parent_node, projects)
|
||||
local project_root = git.get_project_root(parent_node.absolute_path)
|
||||
local status = projects[project_root] or {}
|
||||
local toplevel = git.get_toplevel(parent_node.absolute_path)
|
||||
local status = projects[toplevel] or {}
|
||||
for _, node in ipairs(parent_node.nodes) do
|
||||
explorer_node.update_git_status(node, explorer_node.is_git_ignored(parent_node), status)
|
||||
if node.nodes and #node.nodes > 0 then
|
||||
|
||||
Reference in New Issue
Block a user