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 authored and Tim Pope committed 2017-12-16 13:41:32 -05:00
1 parent 5032d9ee72
commit f3ccb0c12e
1 file changed
+2
+2
View File
@@ -2749,6 +2749,8 @@ function! s:BufReadObject() abort
endif
endtry
return ''
catch /^fugitive: rev-parse/
return ''
catch /^fugitive:/
return 'echoerr v:errmsg'