* <C-R><C-G> in :Gstatus recalls cursor line filename.
* Map dp to show diff in :Gstatus.
* Add ca and cA commit maps to :Gstatus.
* Add cc alias for C in :Gstatus.
* Disable swapfile in :Gstatus.
* Replace :Gstatus cv with cva and cvc.
* Add an `S` mapping for vertical splits from :Gstatus.
* Close diffs when navigating from :Gstatus.
* Enable folding in :Gstatus.
* Accept a count with :Gstatus <C-N>/<C-P>.
* Allow <C-p> pass through to ctrlp.vim in :Gstatus.
* Add . in :Gstatus to prepopulate command line with revision.
* Fix :Gstatus dp with external diff enabled.
* Force displayCommentPrefix to fix :Gstatus on 1.8.5+.
* Support localized `git status`.
* Map g? and <F1> to show help in :Gstatus and :Gblame.
* Kill relativenumber in blame buffer.
* Fix jump to line on reblame.
* Return to blamed buffer on q in blame.
* Restore blamed window on gq in blame.
* Fix :Gblame scrollbind with folds.
* Jump from blame to commit focuses relevant diff.
* :Gblame: Retain original alternate buffer.
* Use - not <CR> for reblame.
* Switch :Gblame <CR> to open commit.
* Open fold when jumping to commit from blame.
* Add maps for resizing blame window.
* Conceal file names and line numbers in :Gblame.
* Set winfixwidth in :Gblame buffers.
* Press <CR> in :Gblame to open commit (reblame is now -).
* Better csh support.
* Work around "always" color option.
* Fix trailing blank line when editing index files.
* Use HTTPS for GitHub URLs in README.
* :Gdiff split direction based on 'diffopt' and window size.
* Focus diff window on :Gdiff.
* Restore options when turning off diff mode.
* Set bufhidden=delete in historical buffers.
* Fix modeline errors in historical buffers.
* Change cp to cP.
* Add :Git! et al. for loading output into a buffer.
* Tab complete Git aliases.
* Enter on a +/- diff line jumps to that line.
* Better Windows support.
* Support core.autocrlf=false on Windows.
* Work around slow \\ Windows network path.
* Work around .git in 'wildignore'.
* Fix garbage during :Gcommit with alternate screen.
* Fix garbling on :Gcommit when nothing is staged.
* Hack around broken :Gcommit with symlinked .git.
* Use y<C-G> to yank the current object's path.
* Preserve alternate file in :Gmove.
* Support bare repositories that don't end in .git.
* Support .git-file repositories (including submodules).
* Support symlinked .git if core.worktree is set.
* Fix redraw issue after :Gbrowse.
* Support GitHub FI in :Gbrowse.
* Support implicit GitHub username in remote for :Gbrowse.
* Make fugitive commands available in nerdtree buffers.
* Make fugitive commands available in command line window.
* :Glgrep and :Gllog.
* :.Glog jumps to same line in each file.
* Map - to go up a directory.
* Provide custom 'foldtext'.
* Respect $GIT_CEILING_DIRECTORIES.
* Look for $GIT_DIR and $GIT_WORK_TREE.
* Improve Windows support.
* Assorted bug fixes.
According to `:help E302`, E302 comes from Vim being unable to rename
the swap file when an open buffer's name is changed; but the error is
mostly harmless. E302 seems to occur in vim-fugitive under Windows but
not *nix.
This fix allow :Glog and :Gdiff to work on such systems; previously the
uncaught error made these operations fail or at least work strangely.
On Windows, if Vim is invoked with a working directory starting with a
lowercase drive letter (e.g. c:\<path> instead of C:\<path>), some
mappings in the blame buffer do not work correctly. For example,
hitting Enter on a line throws an exception rather than showing the
associated commit. The reason for this is that the b:git_dir variable
is not being set on the blame buffer. The reason in turn for this is
that the path to the blame buffer is being stored in s:temp_files with
an uppercase drive letter, but in the fugitive_temp augroup, '<afile>:p'
is being expanded with a lowercase drive letter, so the lookup in
s:temp_files fails. Fix this by converting paths to lowercase before
using them as keys for the s:tempfile dictionary. Because of the way
Vim generates temporary file names, this is safe even on platforms with
case-sensitive file systems.
Our doautocmd in s:ReplaceCmd already processes the modelines while the
buffer is still modifiable, so we can disable it after tha prevent
subsequent invocations.
Closes#323.