sindrets / diffview.nvim

Single tabpage interface for easily cycling through diffs for all modified files for any git rev.
Other
3.6k stars 101 forks source link

[Bug] Restore deleted file #381

Closed ten3roberts closed 1 year ago

ten3roberts commented 1 year ago

Description

An error is thrown when restoring a file using X which was deleted

Expected behavior

The file is restored

Actual behavior

Error executing luv callback:
...ocal/share/nvim/lazy/diffview.nvim/lua/diffview/path.lua:633: ENOENT: no such file or directory: /Users/teiroberts/dev/Ambient/guest/rust/examples/basics/asset_loading/assets/pipeline.json
stack traceback:
    [C]: in function 'error'
    ...ocal/share/nvim/lazy/diffview.nvim/lua/diffview/path.lua:633: in function <...ocal/share/nvim/lazy/diffview.nvim/lua/diffview/path.lua:631>

Steps to reproduce

  1. delete and commit a file
  2. DiffviewOpen {commit}
  3. Press X on the file

Health check

Output of :checkhealth diffview ``` ============================================================================== diffview: require("diffview.health").check() Checking plugin dependencies ~ - OK nvim-web-devicons installed. Checking VCS tools ~ - The plugin requires at least one of the supported VCS tools to be valid. - OK Git found. - OK Git is up-to-date. (2.39.2) - OK Mercurial found. - OK Mercurial is up-to-date. (6.4) ```

Log info

Relevant info from :DiffviewLog ``` [INFO 2023-06-14 09:11:57.346 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/lib.lua:74: [command call] :DiffviewFileHistory --base=LOCAL [INFO 2023-06-14 09:11:57.448 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:618: [GitAdapter:incremental_line_trace_data()] [job-info] Exit code: 0 [INFO 2023-06-14 09:11:57.448 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:618: [GitAdapter:incremental_line_trace_data()] [cmd] git '-P' '-c' 'gc.auto=0' 'log' '--color=never' '--no-ext-diff' '--pretty=format:%x00%n%H %P%n%an%n%ad%n%ar%n %D%n %s' '--date=raw' '-L50,53:lua/plugins/cmp.lua' '-n256' '--diff-merges=combined' '--' [INFO 2023-06-14 09:11:57.448 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:618: [GitAdapter:incremental_line_trace_data()] [cwd] /Users/teiroberts/.config/nvim [INFO 2023-06-14 09:11:57.572 +0200] ...diffview/scene/views/file_history/file_history_panel.lua:264: [FileHistory] Completed update for 3 entries successfully (158.322 ms). [INFO 2023-06-14 09:42:37.862 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/lib.lua:24: [command call] :DiffviewOpen --untracked-files=no --imply-local origin/main..HEAD [INFO 2023-06-14 09:42:38.081 +0200] ...iffview.nvim/lua/diffview/scene/views/diff/diff_view.lua:483: [DiffView] Completed update for 218 files successfully (138.666 ms) [ERROR 2023-06-14 09:42:54.880 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/job.lua:327: Job exited with a non-zero exit code: 128 [ERROR 2023-06-14 09:42:54.881 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [job-info] Exit code: 128 [ERROR 2023-06-14 09:42:54.881 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cmd] git 'cat-file' '-e' ':guest/rust/examples/basics/asset_loading/assets/pipeline.json' [ERROR 2023-06-14 09:42:54.881 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cwd] /Users/teiroberts/dev/Ambient [ERROR 2023-06-14 09:42:54.881 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [stderr] fatal: path 'guest/rust/examples/basics/asset_loading/assets/pipeline.json' does not exist (neither on disk nor in the index) [ERROR 2023-06-14 09:43:07.000 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/job.lua:327: Job exited with a non-zero exit code: 128 [ERROR 2023-06-14 09:43:07.000 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [job-info] Exit code: 128 [ERROR 2023-06-14 09:43:07.000 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cmd] git 'cat-file' '-e' ':guest/rust/examples/basics/asset_loading/assets/pipeline.json' [ERROR 2023-06-14 09:43:07.000 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cwd] /Users/teiroberts/dev/Ambient [ERROR 2023-06-14 09:43:07.000 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [stderr] fatal: path 'guest/rust/examples/basics/asset_loading/assets/pipeline.json' does not exist (neither on disk nor in the index) [INFO 2023-06-14 09:44:07.430 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/lib.lua:24: [command call] :DiffviewOpen --untracked-files=no --imply-local main [INFO 2023-06-14 09:44:07.612 +0200] ...iffview.nvim/lua/diffview/scene/views/diff/diff_view.lua:483: [DiffView] Completed update for 116 files successfully (99.670 ms) [ERROR 2023-06-14 09:44:19.784 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/job.lua:327: Job exited with a non-zero exit code: 128 [ERROR 2023-06-14 09:44:19.784 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [job-info] Exit code: 128 [ERROR 2023-06-14 09:44:19.784 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cmd] git 'cat-file' '-e' ':guest/rust/examples/basics/asset_loading/assets/pipeline.json' [ERROR 2023-06-14 09:44:19.784 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cwd] /Users/teiroberts/dev/Ambient [ERROR 2023-06-14 09:44:19.784 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [stderr] fatal: path 'guest/rust/examples/basics/asset_loading/assets/pipeline.json' does not exist (neither on disk nor in the index) [INFO 2023-06-14 09:46:32.876 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/lib.lua:24: [command call] :DiffviewOpen --untracked-files=no --imply-local b96b418873ab3b9e2ee72ed1bf7332db38003a57 [INFO 2023-06-14 09:46:32.994 +0200] ...iffview.nvim/lua/diffview/scene/views/diff/diff_view.lua:483: [DiffView] Completed update for 26 files successfully (42.765 ms) [ERROR 2023-06-14 09:46:36.081 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/job.lua:327: Job exited with a non-zero exit code: 128 [ERROR 2023-06-14 09:46:36.081 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [job-info] Exit code: 128 [ERROR 2023-06-14 09:46:36.081 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cmd] git 'cat-file' '-e' ':guest/rust/examples/basics/image/assets/pipeline.json' [ERROR 2023-06-14 09:46:36.081 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cwd] /Users/teiroberts/dev/Ambient [ERROR 2023-06-14 09:46:36.081 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [stderr] fatal: path 'guest/rust/examples/basics/image/assets/pipeline.json' does not exist (neither on disk nor in the index) [INFO 2023-06-14 09:47:25.992 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/lib.lua:24: [command call] :DiffviewOpen --untracked-files=no --imply-local 563e613 [INFO 2023-06-14 09:47:26.109 +0200] ...iffview.nvim/lua/diffview/scene/views/diff/diff_view.lua:483: [DiffView] Completed update for 28 files successfully (41.426 ms) [ERROR 2023-06-14 09:47:28.460 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/job.lua:327: Job exited with a non-zero exit code: 128 [ERROR 2023-06-14 09:47:28.460 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [job-info] Exit code: 128 [ERROR 2023-06-14 09:47:28.460 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cmd] git 'cat-file' '-e' ':guest/rust/examples/basics/image/assets/pipeline.json' [ERROR 2023-06-14 09:47:28.460 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cwd] /Users/teiroberts/dev/Ambient [ERROR 2023-06-14 09:47:28.460 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [stderr] fatal: path 'guest/rust/examples/basics/image/assets/pipeline.json' does not exist (neither on disk nor in the index) [INFO 2023-06-14 09:49:07.899 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/lib.lua:24: [command call] :DiffviewOpen --untracked-files=no --imply-local 563e613 [INFO 2023-06-14 09:49:08.020 +0200] ...iffview.nvim/lua/diffview/scene/views/diff/diff_view.lua:483: [DiffView] Completed update for 28 files successfully (43.607 ms) [ERROR 2023-06-14 09:49:10.157 +0200] ...local/share/nvim/lazy/diffview.nvim/lua/diffview/job.lua:327: Job exited with a non-zero exit code: 128 [ERROR 2023-06-14 09:49:10.157 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [job-info] Exit code: 128 [ERROR 2023-06-14 09:49:10.157 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cmd] git 'cat-file' '-e' ':guest/rust/examples/basics/image/assets/pipeline.json' [ERROR 2023-06-14 09:49:10.157 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [cwd] /Users/teiroberts/dev/Ambient [ERROR 2023-06-14 09:49:10.157 +0200] ...azy/diffview.nvim/lua/diffview/vcs/adapters/git/init.lua:1362: [stderr] fatal: path 'guest/rust/examples/basics/image/assets/pipeline.json' does not exist (neither on disk nor in the index) ```

Neovim version

NVIM v0.10.0-dev-1878+gbc67bbe44-Homebrew                                                                                                                                                                                                                       
Build type: Release                                                                                                                                                                                                                                             
LuaJIT 2.1.0-beta3                                                                                                                                                                                                                                              

   system vimrc file: "$VIM/sysinit.vim"                                                                                                                                                                                                                        
  fall-back for $VIM: "/opt/homebrew/Cellar/neovim/HEAD-bc67bbe/share/nvim"                                                                                                                                                                                     

Run :checkhealth for more info

Operating system and version

MacOs Ventura

Minimal config

-- #######################################
-- ### USAGE: nvim --clean -u mini.lua ###
-- #######################################

local root = vim.fn.stdpath("run") .. "/nvim/diffview.nvim"
vim.fn.mkdir(root, "p")

-- set stdpaths to use root
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  {
    "sindrets/diffview.nvim",
    dependencies = { "nvim-tree/nvim-web-devicons" },
    config = function()
      require("diffview").setup({
        -- ##############################################################################
        -- ### ADD DIFFVIEW.NVIM CONFIG THAT IS _NECESSARY_ FOR REPRODUCING THE ISSUE ###
        -- ##############################################################################
      })
    end,
  },
  -- ##################################################################
  -- ### ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE ###
  -- ##################################################################
}
require("lazy").setup(plugins, { root = root .. "/plugins" })
require("lazy").sync({ show = false, wait = true })

vim.opt.termguicolors = true
vim.cmd("colorscheme " .. (vim.fn.has("nvim-0.8") == 1 and "habamax" or "slate"))

-- ############################################################################
-- ### ADD INIT.LUA SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE ###
-- ############################################################################
sindrets commented 1 year ago

Thanks for the report.