From 50697cfe98292a98c4662277fa255a78d92879aa Mon Sep 17 00:00:00 2001 From: Oscar Wallberg Date: Mon, 27 Apr 2026 13:34:18 +0200 Subject: [PATCH] fix(git): small bug fixes --- lua/git/cmd.lua | 16 +++++++++++----- lua/git/status_win.lua | 4 ++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/lua/git/cmd.lua b/lua/git/cmd.lua index ae710be..8ce6f65 100644 --- a/lua/git/cmd.lua +++ b/lua/git/cmd.lua @@ -93,11 +93,17 @@ local function run_in_split(worktree, args, conf) vim.b[buf].git_worktree = worktree if conf.needs_ref then local user_ref = first_positional(args, 2) or "HEAD" - local sha = repo.rev_parse(worktree, user_ref, true) or user_ref - vim.b[buf].git_ref = sha - vim.b[buf].git_parent_ref = - repo.rev_parse(worktree, user_ref .. "^", true) - pcall(vim.api.nvim_buf_set_name, buf, "git://" .. sha .. "/") + local sha = repo.rev_parse(worktree, user_ref, true) + if sha then + vim.b[buf].git_ref = sha + vim.b[buf].git_parent_ref = + repo.rev_parse(worktree, user_ref .. "^", true) + end + pcall( + vim.api.nvim_buf_set_name, + buf, + "git://" .. (sha or user_ref) .. "/" + ) end vim.bo[buf].filetype = conf.ft diff --git a/lua/git/status_win.lua b/lua/git/status_win.lua index 465e00a..1ff2565 100644 --- a/lua/git/status_win.lua +++ b/lua/git/status_win.lua @@ -311,6 +311,10 @@ local function render(bufnr, branch, groups) }) end state[bufnr].lines = meta + -- The diff windows we last opened may now be showing content for an + -- entry whose underlying file has changed. Drop the cache so the next + -- show_diff recomputes pre/post panes instead of short-circuiting. + state[bufnr].last_shown_key = nil end ---@param bufnr integer