This was a mistake. I took --paginate to be the opposite of --no-pager,
but it forces $PAGER over $GIT_PAGER and pager configuration. This
defeats the purpose of using it as way to trick :Git into running a
regular command with :terminal.
References https://github.com/tpope/vim-fugitive/issues/1415
In particular, this fixes `FugitiveFind(..., '')` to respect the empty
Git dir argument rather than falling back to detection on the current
working directory. Which in turn fixes :Gstatus using the current
working directory when called from a buffer that does not belong to a
repository.
References https://github.com/tpope/vim-fugitive/issues/1408
The following sequence of commands leaves the buffer with scrollbind and
cursorbind set:
:Gblame
Reblame with one of -, ~, or P
Quit with gq
What's happening here is:
1. In BlameSubcommand, we set scrollbind and cursorbind on the buffer.
We also set w:fugitive_leave on the blame buffer to reset scrollbind
and cursorbind when the blame buffer is closed.
2. In BlameJump, we execute Gedit, which changes the window to a new
buffer. Then, we delete the blame buffer, at which point we try to
reset scrollbind and cursorbind. However, the original buffer isn't
on a window anymore, so this doesn't do anything.
3. In BlameQuit, we go back to the original buffer. Note this snippet
from `:help local-options`: "if this buffer has been edited in this
window, the [option] values from back then are used". When the
original buffer was last used, scrollbind and cursorbind were still
set. Therefore, the buffer ends up with scrollbind and cursorbind
set after leaving Gblame.
The fix is to delete the blame buffer _before_ changing to the new
buffer in BlameJump. This ensures that we restore the options while the
original buffer is still around (which is how BlameQuit does it, too).
* Commands are now global, not buffer local.
* Calling a command in an unnamed buffer uses the working directory.
* Preserve line number on :Gedit to return to work tree buffer.
* Better submodule support in :Gstatus.
* Support git-blame revision ignoring features.
* Show first parent diff in merge commit buffer.
* Remove deprecated support for .git/tags.
* Bug fixes.