Commit Graph

619 Commits

Author SHA1 Message Date
Tim Pope
cde670ee81 fugitive.vim 2.3
* Support worktrees.
* Provide API for extensible :Gbrowse support.
* Remove GitHub URL support in favor of rhubarb.vim.
* Provide :Gdelete to delete both file and buffer.
* Provide :Grename to move relative to file's parent directory.
* Split to open file when :Gstatus is only window.
* Provide U in :Gstatus to discard changes.
* Provide additional :Gstatus commit maps.
* Provide d2o and d3o to obtain diff during conflict.
* Support :tab Gcommit.
* Open :Gcommit tab before current.
* Support :Gdiff +cmd.
* Support gf in Git file types.
* Add flagship.vim statusline indicator.
* Use the Neovim terminal emulator for :Git.
* Bug fixes.
2018-05-28 14:22:08 -04:00
Tim Pope
26433842e9 Revert accidentally committed changes
This partially reverts commit 65be0ae749.
2018-05-27 15:21:22 -04:00
Tim Pope
eeaadf7255 Fix off by one error 2018-05-27 15:18:57 -04:00
Tim Pope
65be0ae749 Fix accidental version bump 2018-05-27 15:18:40 -04:00
Tim Pope
6faf165ef2 Avoid non-file windows for :Gstatus open
Closes https://github.com/tpope/vim-fugitive/issues/1002
2018-05-27 01:02:44 -04:00
Tim Pope
614e20bb65 Dispatch BufReadPre 2018-05-22 22:02:13 -04:00
Tim Pope
33b7c1a5b7 Don't run autocommands loading temp file
This should bring about a small performance improvement as prevent some
confusion in other plugins.
2018-05-22 22:01:19 -04:00
Tim Pope
2a4714335f Remove #Repo and #Buffer
Let's save these for when we're ready to rename the instance variables
too.
2018-05-19 19:30:08 -04:00
Tim Pope
994d781f90 Add deprecation warning for :Gstatus cA 2018-05-19 15:41:25 -04:00
Tim Pope
a5a75aca92 Bring back :Gstatus C with a warning 2018-05-16 00:28:17 -04:00
Tim Pope
0078c76106 Blow up if user assigns string to map variable 2018-05-15 23:11:13 -04:00
Tim Pope
e0fa72363a Fix missing bang on function 2018-05-15 23:03:13 -04:00
Tim Pope
a22adef4e0 Use capitalized names for official functions
The distinction between "Fugitive" and "fugitive#" functions is whether
it will live in the plugin or autoload file, once the separation finally
comes to pass.
2018-05-15 23:03:13 -04:00
Tim Pope
b14434bae0 Tweak :Gstatus commit maps 2018-05-11 17:12:18 -04:00
Tim Pope
5c2eccd55d Fix unique map check 2018-05-06 22:35:44 -04:00
Tim Pope
b1df5f1226 Allow mapping overrides
Not bothering with the read only buffer maps for now but it would
certainly make sense to.

References https://github.com/tpope/vim-fugitive/issues/761
2018-05-06 19:14:05 -04:00
Tim Pope
b34083549e Make :s use more robust 2018-05-06 19:10:51 -04:00
Tim Pope
dcecb762b0 Add :Grename
I'll rip out the weird current directory stuff later.
2018-05-04 21:42:38 -04:00
Teo Ljungberg
40d78f07de Strip out carriage returns 2018-04-15 15:54:35 -04:00
Teo Ljungberg
63a80f4bfe Remove unused variable 2018-04-15 15:54:35 -04:00
Tim Pope
b680699450 Don't force tab for :Gcommit --verbose
Keep it for -v, for now.

Closes https://github.com/tpope/vim-fugitive/issues/1011
2018-04-06 15:05:24 -04:00
Tim Pope
3ac95c4dde Add support for :tab Gcommit
References https://github.com/tpope/vim-fugitive/issues/1011
2018-04-06 15:05:24 -04:00
Daniel Hahler
409b098c93 Optimize fugitive#foldtext
Only really relevant when using `set cursorline` [1], but good in
general after all.

1: https://github.com/vim/vim/issues/2773
2018-04-04 17:40:08 -04:00
Daniel Hahler
f3ccb0c12e 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.
2017-12-16 13:41:32 -05:00
Tim Pope
5032d9ee72 Strip backslashes on expansion
Closes https://github.com/tpope/vim-fugitive/issues/975
2017-11-30 15:04:21 -05:00
Carlos Coelho
de6c05720c Use NERDTree.root instead of removed NERDTreeRoot
As of scrooloose/nerdtree@d36b793, it was recommended to use
NERDTree.root instead of deprecated NERDTreeRoot. Also, this command
seems to be recently removed since it was throwing an Undefined
variable: b:NERDTreeRoot when starting Vim.
2017-11-25 23:21:51 -05:00
Tim Pope
7c9b87a3c3 Fix escaping in :Gblame
Closes https://github.com/tpope/vim-fugitive/issues/952
2017-10-21 18:06:41 -04:00
Michael Budde
42daa3183b Do not accept :Gread count in argument position
Use `-range` instead of `-count` to prevent Vim from interpreting a
branch name starting with a number as a count, e.g. `:Gread 123-foo`
being interpreted as `:123Gread -foo`.
2017-10-09 23:14:23 -04:00
Samuel Roeca
913fff1cea Limit use of :terminal to nvim 2017-07-12 17:33:37 -04:00
Tim Pope
be2ff98db5 Provide :Gdelete
Closes https://github.com/tpope/vim-fugitive/issues/804
2017-06-08 01:25:15 -04:00
Tim Pope
280bbdb6eb Fix syntax error
Closes https://github.com/tpope/vim-fugitive/issues/623
2017-06-07 19:32:02 -04:00
Tim Pope
366996484e Limit use of lookbehind in :Gblame highlighting
Closes https://github.com/tpope/vim-fugitive/issues/921
2017-06-07 13:34:15 -04:00
Tim Pope
7be1f0aef6 Eliminate use of =... 2017-05-30 14:10:37 -04:00
Tim Pope
7195586b79 Remove debugging statement 2017-05-30 13:09:24 -04:00
Tim Pope
be770419fc Follow redirect when determining :Gbrowse url
This is a really contrived feature, but I want to make it possible for
people to have their cake and eat it too when it comes to custom
repository URLs that redirect to GitHub.
2017-05-29 22:44:00 -04:00
Tim Pope
0648abc018 Fix regexp checking Git version in :Gbrowse
References https://github.com/tpope/vim-fugitive/issues/844
2017-05-29 21:17:47 -04:00
Tim Pope
e272080f0d Don't trust CSApprox_loaded
Capitalized variables can end up in session files, folks.  Don't use
them for include guards.
2017-05-29 21:17:47 -04:00
Tim Pope
d6e7e20123 Work around Vim issue with hidden diff window
If you call :Gdiff on a file that's also open in a separate tab, close
it, switch to another file, and call :Gdiff again, Vim thinks the first
file is part of a 3-way diff, despite no longer being displayed in a
window.  Curiously, :diffoff! seems to work around this, despite both
the documentation and source code suggesting it merely iterates over
open windows.

Closes https://github.com/tpope/vim-fugitive/issues/534
2017-05-19 18:15:21 -04:00
kaihowl
1d2f150331 Unstage single files from git move and do not move them back
This fixes #824
2017-05-19 10:37:09 -04:00
gautaz
e5935c1165 Throw joined errors if error is empty on commit
Fixes tpope/vim-fugitive#907
2017-05-13 00:23:44 -04:00
Tim Pope
7ebe5c143d Handle .git in file system root
References https://github.com/tpope/vim-fugitive/issues/908
2017-05-08 11:03:29 -04:00
Tim Pope
c640ee78a8 This time I actually tried it 2017-05-02 19:34:47 -04:00
Tim Pope
c9b26e20d3 Fix substitute in jump to file 2017-05-02 19:32:31 -04:00
Tim Pope
79f4a49a94 Fix regexes in jump to file
Closes https://github.com/tpope/vim-fugitive/issues/906
2017-05-02 19:31:17 -04:00
Tim Pope
0cb46585ac Use same character class in all diff matches 2017-05-02 19:31:17 -04:00
Tim Pope
d4df8882c5 Better support for diff.mnemonicPrefix 2017-05-01 14:47:32 -04:00
Tim Pope
d5208d494f Force resolution of symlinked buffers
Closes https://github.com/tpope/vim-fugitive/issues/831
2017-05-01 14:47:32 -04:00
Jack Nagel
785bb15745 Highlight blame hashes if 'termguicolors' is present 2017-04-27 21:27:20 -04:00
Tim Pope
fbf89773b4 Don't assume support for remote get-url
References https://github.com/tpope/vim-fugitive/issues/844
2017-04-26 13:06:15 -04:00
Tim Pope
26504eecbd Correctly eliminate trailing space in :Gpush
Note to self: don't test changes to :Gpush by pushing them.
2017-04-23 22:34:41 -04:00
Tim Pope
0d281a2607 Eliminate trailing space in :Gpush 2017-04-23 22:32:01 -04:00
Tim Pope
b2665cc650 Add g:fugitive_git_command
The idea is that g:fugitive_git_command is for user facing commands and
suitable to be changed to something like "hub", while
g:fugitive_git_executable is for low level internals.
2017-04-11 18:54:53 -04:00
Tim Pope
c3052fba84 Heavy handed rhubarb.vim suggestion 2017-04-11 17:59:32 -04:00
dummyunit
4f24757df2 Fix temp_files cache on Windows when TEMP is set to a short path (#893)
If %TEMP% is set to a short path (e.g. "C:\LongDi~1") then tempname()
will return a file name that contains that short path. If that path is
later used as key for entry in s:temp_files dictionary, that entry won't
be found in BufNewFile,BufReadPost events because <afile> is expand()'ed
before it is used as a key for s:temp_files.
In the end, user gets cryptic error message about
"C:\LongDirName\VI12345.tmp.fugitiveblame" not being a git repository
when he tries to open a commit in Gblame window.

To workaround that we expand paths of temp files when adding entries to
s:temp_files. Also, because expand() can't expand short path if it
doesn't exist in the file system, we have to extract the directory part
and expand it separately.
2017-04-05 14:58:03 -04:00
Tim Pope
eb945e9a11 :Gbrowse remote/branch should not resolve upstream
Old behavior: Follow remote/branch to local branch to upstream,
wherever that happens to live.

New behavior: Open branch at remote, without further resolution.
2017-04-03 17:18:20 -04:00
Tim Pope
90cbbf5854 Make unrecognized git type error more informative 2017-04-02 17:04:02 -04:00
Tim Pope
87c1bda4d5 Fix implicit use of v: variable 2017-02-25 17:05:12 -05:00
Tim Pope
c5c1bd66d8 Ensure v:shell_error comes from correct command
Closes https://github.com/tpope/vim-fugitive/issues/648
2017-02-25 16:38:19 -05:00
Jonathan Arnett
f44845e440 Fix for empty buffer :Git command in Neovim (#785)
Detects whether the current buffer is empty; opens a new empty tab if so, a new tab of the same buffer if not.
2017-02-10 12:35:36 -05:00
fREW Schmidt
245ce889e2 Support insteadOf for Gbrowse (#874)
Fixes #873
2017-02-07 18:49:17 -05:00
Nate Bosch
444ba9fda5 Stricter match for fugitive:// buffers (#872)
Fixes #871

It is valid - though odd - to open a file at `some//path`. In that case
the current check for fugitive buffers matches and changes &path
unexpectedly. A stricter match against `://` prevents this.
2017-02-03 11:04:54 -05:00
Tim Pope
b754bc2031 Fix mismatched quotes
References https://github.com/tpope/vim-fugitive/issues/844
2016-11-13 19:04:07 -05:00
Matěj Cepl
b3a8be6975 Add shortcuts for getting hunks from other views of the diff. (#801)
Fixes #798
2016-11-05 12:20:24 -04:00
Tommy Allen
58ed86e434 Use -z for splitting alias config. (#850) 2016-10-21 16:01:34 -04:00
tmsanrinsha
aac85a268e Fix U does not delete Untracked files (#823) 2016-08-08 15:18:18 -04:00
KabbAmine
c00ebd75ac Match printable character in git status
With `LANG=fr_FR.UTF-8`, a non-breakable space character is added to the
text of git status, this commit allows matching it.

Closes #815
2016-07-06 17:50:38 -04:00
Alex Rodionov
50cc268d29 Add --fixup= and --squash= to :Gcommit completion (#811) 2016-06-24 13:45:00 -04:00
canaaerus
4865891565 s:cfile: Match multi-byte characters #806 (#810)
For some locales like de_DE.UTF8 the text of `git status` contains multi-byte characters.
This change allows a subsequent file name to be matched correctly .
2016-06-22 15:46:54 -04:00
Daniel Hahler
3439f999b1 Call s:define_commands directly (#792)
This removes the fugitive_utility augroup, and allows for something like
the following:

> vim --cmd 'au User Fugitive Gbrowse!' path/to/file

Without this patch the user's User autocommand would be run before
fugitive's, and therefore the commands would not be defined already.
2016-05-11 18:01:39 -04:00
Daniel Hahler
6460734b5e Fix typo in s:repo_translate: s/,/./ (#791) 2016-05-11 17:37:45 -04:00
Quinn Strahl
bdd216827a Make :Git open a tab to the left for :terminal
- Users of multiple tabs will find themselves back where they started
  when the terminal closes, instead of in the next tab over
2016-04-14 19:08:11 -04:00
Quinn Strahl
0ac4915cd7 Simplify tabedit invocation for :Gcommit -v
- `-tabedit` does the same thing as `(tabpagenr()-1).'tabedit'`
2016-04-14 19:08:11 -04:00
Ari Pollak
841adb49ad Use "+ instead of "* 2016-04-06 19:51:16 -04:00
Andy Stewart
57afba5bdd Trigger BufWritePost after adding to index with Gwrite
See airblade/vim-gitgutter#278.
2016-03-24 18:54:08 -04:00
Tim Pope
19d1c944db Remove unmerged files on :Gstatus U 2016-03-09 21:31:25 -05:00
Tim Pope
90250785d1 Call git clean for U on untracked file 2016-03-09 21:26:09 -05:00
Vadim Zeitlin
099d65826e Don't use spaces in Git command to avoid problems under Windows
When using a helper script to make Windows Vim work with Cygwin Git, arguments
containing spaces don't survive being passed through "cmd /c" to this script
and are decomposed into several tokens.

Just use "%x20" instead of spaces in the pretty format to avoid the problem.
2016-03-05 16:14:18 -05:00
Tim Pope
008b957086 Ignore worktree with broken gitdir
References https://github.com/tpope/vim-fugitive/issues/751
2016-02-24 19:29:27 -05:00
Tim Pope
16c2b7abb9 Support worktrees
Closes https://github.com/tpope/vim-fugitive/issues/655
2016-02-24 16:20:52 -05:00
Tim Pope
1e3f1103d9 DRY up refs/ paths 2016-02-24 15:53:51 -05:00
Tim Pope
9835920a3c Use includeexpr on default <cfile>
Closes https://github.com/tpope/vim-fugitive/issues/744
2016-01-22 20:03:58 -05:00
Tim Pope
fd36aa9c61 Fix issue extracting remote 2016-01-08 17:05:54 -05:00
Tim Pope
4dd41688cf Entertain P as a p alternative in :Gstatus
This could potentially free up `p` as "open in new tab", which would
correspond nicely with `vim -p`.
2016-01-01 16:55:17 -05:00
Tim Pope
18d6d1ab82 Overhaul :Gbrowse remote handling 2015-12-26 19:53:07 -05:00
Tim Pope
9ce67cdc93 Always pass commit SHA to :Gbrowse handlers 2015-12-26 15:09:08 -05:00
Tim Pope
bf04261080 Revert "Remove guard against index stage in :Gbrowse handler"
This reverts commit 14daf094d9.  My
assertion was wrong; commit will no longer be an index stage but it
still might be an empty string.
2015-12-26 14:54:35 -05:00
Tim Pope
52d180af0a Include trailing / in tree paths for :Gbrowse handlers 2015-12-26 14:37:45 -05:00
Tim Pope
14daf094d9 Remove guard against index stage in :Gbrowse handler
This parameter can now always be directly used within a URL, without any
sanity checking
2015-12-26 14:36:39 -05:00
Tim Pope
ac904e806d Don't pass stage number as commit to :Gbrowse handler 2015-12-26 14:18:00 -05:00
Tim Pope
9f768cd3bc Minimum viable URL escaping in :Gbrowse
Closes https://github.com/tpope/vim-fugitive/issues/703.
2015-12-26 14:11:54 -05:00
Tim Pope
09cdce7add Fix jump to file for tree at root of commit
Closes https://github.com/tpope/vim-fugitive/issues/735
2015-12-23 21:27:43 -05:00
Tim Pope
8851b8fe64 Fix jump from diff to file
This code hasn't been touched in 4 years; how did it break?!
2015-12-15 21:19:33 -05:00
Tim Pope
cfa485ede7 Better support for binary file grep results 2015-12-15 19:01:40 -05:00
Tim Pope
207c643ea4 Bring GitHub handler in line with rhubarb.vim
Closes https://github.com/tpope/vim-fugitive/issues/730
2015-12-11 16:38:05 -05:00
Tim Pope
cac2c8ef8e Fix instaweb current buffer assumption 2015-12-01 18:41:29 -05:00
Tim Pope
a9a22e0e4e Never :Gedit with a trailing slash 2015-12-01 18:35:25 -05:00
Tim Pope
c3e918072f Accommodate @ as alias for HEAD 2015-12-01 18:06:38 -05:00
Tim Pope
d854197c03 Open release page for tags on GitHub 2015-12-01 04:04:55 -05:00
Tim Pope
23faeadc7c Revert "Show all untracked files in :Gstatus window"
This reverts commit 21b6dd7aee.

Closes https://github.com/tpope/vim-fugitive/issues/726
2015-11-30 19:38:48 -05:00
Andy Russell
1ecd12d523 Add support for fish shell syntax
Closes #626.
2015-11-06 15:54:34 -05:00