BufReadObject: handle rev-parse errors

With `:Gdiff ^` on a file that has just been added, you would get an
error via `git rev-parse --verify`:

> fatal: Needed a single revision

The error message is clearer when not using `--verify`:

> fatal: Path 'X' exists on disk, but not in 'SHA'.

The behavior depends on if you use `:set hidden`, where the second
invocation works, as in will open an empty buffer - apparently since it
has been created as "a buffer with read errors" ("x" in `:ls!`) before.

Fixes https://github.com/tpope/vim-fugitive/issues/866.
This commit is contained in:
Daniel Hahler 2017-10-30 22:15:41 +01:00 committed by Tim Pope
parent 5032d9ee72
commit f3ccb0c12e

View File

@ -2749,6 +2749,8 @@ function! s:BufReadObject() abort
endif endif
endtry endtry
return ''
catch /^fugitive: rev-parse/
return '' return ''
catch /^fugitive:/ catch /^fugitive:/
return 'echoerr v:errmsg' return 'echoerr v:errmsg'