100 Commits
Author SHA1 Message Date
Tim Pope ef87434b87 Provide :Git difftool and :Git mergetool
References https://github.com/tpope/vim-fugitive/issues/132
2020-01-05 16:36:11 -05:00
Tim Pope 2bcf755c6e Run QuickFix autocommands on :Gclog 2020-01-05 16:36:11 -05:00
Tim Pope 295f41bbf4 Save diff context in :Gclog 2020-01-05 16:17:58 -05:00
Tim Pope 9ec6b55d03 Improve display of :Gclog --summary 2020-01-05 01:50:24 -05:00
Tim Pope 3604fab3b7 Fix whitespace in README 2020-01-05 01:50:24 -05:00
Tim Pope 6d011f1ea5 Improve :Gclog window title 2020-01-05 00:36:36 -05:00
Tim Pope 726fdf1c94 Support ...commit as HEAD...commit 2020-01-03 19:47:08 -05:00
Tim Pope 3bf602b13d Use underlying commit not tag for :Gedit tag:path 2019-12-27 17:19:42 -05:00
Tim Pope 3729c351e1 Fix unknown function error on Vim < 7.2.061 2019-12-27 17:19:42 -05:00
Tim Pope 7848779d3b Don't error if we can't :bwipeout
References https://github.com/tpope/vim-fugitive/issues/1418
2019-12-27 17:19:42 -05:00
Tim Pope 6d4564a05e Fix timer invocation
References https://github.com/tpope/vim-fugitive/issues/1329
2019-12-07 10:14:14 -05:00
Tim Pope 5d37b17e34 Match Git semantics for GIT_CEILING_DIRECTORIES symlink resolution
Also support a generic g:ceiling_directories that can be shared with
other plugins that do this sort of detection.

References https://github.com/tpope/vim-fugitive/issues/1412
2019-12-06 18:03:32 -05:00
Tim Pope b48a572475 Use timers to avoid Vim patch 8.1.1756
Closes https://github.com/tpope/vim-fugitive/issues/1329
2019-12-06 14:39:27 -05:00
Tim Pope e1ab8fff09 Handle both amended and new commits during rebase
References https://github.com/tpope/vim-fugitive/issues/1329
2019-12-06 14:39:27 -05:00
Tim Pope d3a2bdbe2c Don't abort rebase after committing on last step
References https://github.com/tpope/vim-fugitive/issues/1329
2019-12-06 14:12:35 -05:00
Tim Pope 42c6fd1440 Don't override explicit empty string for core.askPass
References https://github.com/tpope/vim-fugitive/issues/1410
2019-12-06 12:56:59 -05:00
Tim Pope 671a85daba Fix erroneous ? escaping in * pattern 2019-11-30 17:19:52 -05:00
Tim Pope 6d9dd103c0 Fix false positive matching filename in blame 2019-11-30 17:15:44 -05:00
Tim Pope 3b1da8b217 Remove debugging function 2019-11-27 16:34:28 -05:00
Tim Pope 67efbf66e0 Don't fall back to pwd for Git dir of blank filename
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
2019-11-27 15:27:52 -05:00
Tim Pope eed46c1f24 Perform automatic :diffoff on :Gdiffsplit /external/file buffers
Closes https://github.com/tpope/vim-fugitive/issues/1402
2019-11-21 22:08:37 -05:00
Tim Pope dc5320630d Provide explanatory error on :Gdiff ~
References https://github.com/tpope/vim-fugitive/issues/1402
2019-11-19 17:48:43 -05:00
Tim Pope 13fdeb5fa7 Don't show bogus unstaged changes in bare repository
References https://github.com/tpope/vim-fugitive/pull/1262
2019-11-17 22:19:33 -05:00
Tim Pope a2d76c4583 Fix completion of stash@\{<Tab>
References https://github.com/tpope/vim-fugitive/issues/1396
2019-11-16 19:48:31 -05:00
Tim Pope 0004f585fd Don't use arrow notation for unstaged modifications
Closes https://github.com/tpope/vim-fugitive/issues/1392
2019-11-15 20:31:29 -05:00
Tim Pope b24f98fbb1 Cache fugitive#Head() to minimize statusline IO
Closes https://github.com/tpope/vim-fugitive/issues/1384
2019-11-15 20:05:18 -05:00
Tim Pope 8c84ea6fdb Replace --no-patch with -s for Git < 1.8.4
Closes https://github.com/tpope/vim-fugitive/issues/1398
2019-11-12 21:31:36 -05:00
Tim Pope 1e57d678ba Add PayPal donation link 2019-11-08 17:41:09 -05:00
Tim Pope f6acae50ea Improve robustness of status --porcelain=v1 parsing
References https://github.com/tpope/vim-fugitive/issues/1388
2019-10-27 18:53:19 -04:00
Tim Pope 0356edf6b8 Optimize away log calls in :Gstatus if no upstream changes 2019-10-26 09:05:49 -04:00
Tim Pope e8c5b604db Improve robustness of status --porcelain=v2 parsing
Closes https://github.com/tpope/vim-fugitive/issues/1388
2019-10-26 08:49:23 -04:00
Tim Pope b09c5d2523 Resolve symlinks in configured work tree
Closes https://github.com/tpope/vim-fugitive/issues/1382
2019-10-22 05:13:42 -04:00
Tim Pope 395d947644 Force --no-edit on squash maps
References https://github.com/tpope/vim-fugitive/pull/1378
2019-10-20 15:37:41 -04:00
Tim Pope 06e34204af Fix error message on blank buffer with no Git dir 2019-10-11 17:21:16 -04:00
Tim Pope 427ac52d7d fugitive.vim 3.1
* 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.
2019-10-10 19:47:39 -04:00
Tim Pope 8c29bf1bb9 Tab complete > arguments 2019-10-10 19:45:25 -04:00
Tim Pope ea818f1fab Include PowerShell in check for win32 shell
Closes https://github.com/tpope/vim-fugitive/issues/435
2019-10-09 11:33:53 -04:00
Tim Pope 28abadcb84 Fix incorrect script id from nested function call
Closes https://github.com/tpope/vim-fugitive/pull/1370
2019-10-07 12:08:12 -04:00
Tim Pope c9cf1b3cb2 Make remaining buffer commands global 2019-10-02 14:40:38 -04:00
Tim Pope cfdfc1ba14 Clearer error message on attempt to delete directory
Recursive deletion is too dangerous to provide without a confirmation
prompt.

Closes https://github.com/tpope/vim-fugitive/issues/1364
2019-10-02 14:01:22 -04:00
Tim Pope 5eeb7625df Expand status file lookup into nested structure
References https://github.com/tpope/vim-fugitive/pull/1337
2019-10-01 16:19:36 -04:00
Tim Pope 4f0905e963 Preserve line number on :Gedit with no or > argument
Closes https://github.com/tpope/vim-fugitive/pull/1326
2019-10-01 15:43:12 -04:00
Tim Pope f72ca2e6c1 Improve ++opt +cmd handling for :Gedit/:Gread 2019-09-30 20:43:16 -04:00
Tim Pope 621ffb087a Fix :'<,'>Gclog on some Vim versions
This was an attempt to get out in front of issues like
https://github.com/tpope/vim-scriptease/issues/43, but looks like it has
problems of its own.

Closes https://github.com/tpope/vim-fugitive/issues/1358
2019-09-30 19:07:04 -04:00
Tim Pope 24b463b5b3 Support REVERT_HEAD and CHERRY_PICK_HEAD 2019-09-30 17:53:11 -04:00
Tim Pope eedfd2a570 Don't show tags warning when editing commit message 2019-09-28 11:14:30 -04:00
Tim Pope ab26e9fdb3 Trigger User FugitiveChanged on events that change repository
Note that in the context of this event, Fugitive functions will use the
changed repository, which might not be the same as the current buffer's
repository.  Pass bufnr() as the optional dir argument to force the
current buffer.

Closes https://github.com/tpope/vim-fugitive/issues/458
2019-09-27 09:30:40 -04:00
Tim Pope fee14c149c Don't reload status on non-Fugitive ShellCmdPost 2019-09-27 09:30:40 -04:00
Tim Pope 540d8024c2 Force status reload on commands likely to change it 2019-09-27 09:30:40 -04:00
Tim Pope 6eb5d8e4b2 Fix buffer local commands
Closes https://github.com/tpope/vim-fugitive/issues/1353
2019-09-26 16:20:19 -04:00
Tim Pope 80ef19665a Fix typo 2019-09-26 10:48:07 -04:00
Tim Pope 18893e8ca7 Use more conventional quickfix event type for :Ggrep
References https://github.com/tpope/vim-scriptease/pull/45
2019-09-26 10:46:53 -04:00
Tim Pope 1b292303c2 Encapsulate doautocmd <nomodeline> 2019-09-26 10:46:53 -04:00
Tim Pope c1244ea7d0 Default to left, not right split for empty :Gdiffsplit filename
This only happens in weird circumstances such as when you call
:Gdiffsplit in a commit object.
2019-09-26 10:46:53 -04:00
Tim Pope 417b3bb818 Fix off by 2 error staging multiple files 2019-09-22 21:30:05 -04:00
Tim Pope edd054f76f Fix visual mode exclusion for staging on section header 2019-09-22 21:29:40 -04:00
Tim Pope 37088aaf65 Fix X on removed file
References https://github.com/tpope/vim-fugitive/issues/1343
2019-09-22 21:27:41 -04:00
Tim Pope 1d8c0a38b2 Show first parent diff for merge commits
Closes https://github.com/tpope/vim-fugitive/issues/1121
2019-09-18 21:54:22 -04:00
Tim Pope f5a94cbc81 Reload status after Vim :terminal command
Closes https://github.com/tpope/vim-fugitive/issues/1323
2019-09-16 17:25:47 -04:00
Tim Pope dc413818a6 Fire ShellCmdPost after :Gpush
References https://github.com/vim-airline/vim-airline/issues/1970
2019-09-16 16:32:23 -04:00
Tim Pope 35f1095f9b Expose completion helpers for subcommands 2019-09-09 19:10:24 -04:00
Tim Pope f5fc469c0c Ignore blank buffers in fugitive#Statusline() 2019-09-06 17:16:19 -04:00
Tim Pope cb66611f03 Remove blank buffer FAQ entry 2019-09-05 17:26:58 -04:00
Tim Pope 49287b6e87 Remove redundant autocommands 2019-09-05 16:42:39 -04:00
Tim Pope ec918b9a79 Support blank buffers
Closes https://github.com/tpope/vim-fugitive/issues/1000
2019-09-05 15:46:27 -04:00
Tim Pope ff0eeac045 Document disabling global maps
References https://github.com/tpope/vim-fugitive/issues/1331
2019-09-05 15:36:56 -04:00
Tim Pope eb04d8bcc0 Standardize on "maps", not "mappings" 2019-09-05 15:35:42 -04:00
Tim Pope 1937bc3cd9 Experimental support for blank buffers 2019-09-04 15:22:28 -04:00
Tim Pope d2837b103c Add sponsor button 2019-09-04 15:22:28 -04:00
Tim Pope 10c54dfc93 Set b:git_dir for :terminal buffers 2019-09-04 15:22:28 -04:00
Tim Pope 40bc5aff18 Make universal maps global 2019-09-04 15:11:59 -04:00
Tim Pope 68da9a2be3 Make :Glog and :Ggrep global 2019-09-04 15:11:59 -04:00
Tim Pope 804957a3e6 Make :Gbrowse global 2019-09-04 15:11:59 -04:00
Tim Pope cf88ce96c9 Make :Gmove and :Gremove global 2019-09-04 15:11:59 -04:00
Tim Pope 2464b0c29a Make :Gcd global 2019-09-04 15:11:59 -04:00
Tim Pope 77a732c97c Explicitly document :Git subcommands 2019-09-04 15:11:59 -04:00
Tim Pope 64d106dfdd Remove fugitive- prefix from command help topics 2019-09-04 13:17:20 -04:00
Tim Pope c9d4ea7900 Always use Git style path for <C-R><C-G> 2019-09-04 13:17:20 -04:00
Tim Pope 99ad1a89fa Relocate 'path' adjustment
I'm not sure where we should do this (if at all), but after loading the
appropriate buffer (and thus applying the file type) is a better place
than during general activation.
2019-09-04 13:17:20 -04:00
Tim Pope 2eb6aac0c4 Adjust warning wording 2019-09-04 13:17:20 -04:00
Tim Pope c80ffaf073 Don't override user :Gr 2019-09-04 13:17:20 -04:00
Tim Pope 63a05a6935 Remove 'tags' support 2019-09-03 21:40:39 -04:00
Tim Pope 522d3d3c1e Make edit commands global 2019-09-03 20:21:47 -04:00
Tim Pope b8c33aa0a1 Enable edit commands to work without git dir 2019-09-03 20:20:37 -04:00
Tim Pope 39f9e2d722 Move IO functions with rest of API 2019-09-03 20:20:37 -04:00
Tim Pope a45e2c6d57 Provide :Gr as alias for :Gread 2019-09-02 19:58:13 -04:00
Tim Pope 5042fd965d Tweak :Gedit > semantics
Treat ~ and ^ suffixes as relative to current commit, not HEAD, and use
a bare > to get to the work tree version.
2019-09-02 19:58:13 -04:00
Tim Pope 251eda7eb6 Reduce fugitive#buffer() to stub object 2019-09-01 21:48:16 -04:00
Tim Pope c212d854d5 Accommodate git-blame revision ignoring features
Closes https://github.com/tpope/vim-fugitive/issues/1316
2019-09-01 12:56:58 -05:00
Tim Pope 082a9b99e7 Remove double word in docs 2019-09-01 12:56:58 -05:00
Tim Pope c13e0e1afd Don't browse to blob for empty buffer 2019-08-31 22:34:34 -04:00
Tim Pope b97a9abe29 Provide global :Git and :G 2019-08-22 19:46:20 -05:00
Tim Pope 410e17129d Use :Git not :G for visible maps
Let's treat :Git as canonical and :G as the shorthand.
2019-08-22 19:45:20 -05:00
Tim Pope 3a01f4b819 Remove toggling behavior of :Gblame
References https://github.com/tpope/vim-fugitive/issues/1316
2019-08-22 19:15:43 -05:00
Tim Pope f04a2275db Remove feedkeys() contortions in :Gdiffsplit
Closes https://github.com/tpope/vim-fugitive/issues/1313
2019-08-21 15:14:39 -05:00
Tim Pope b714adbc51 Fix q deprecation message 2019-08-21 09:12:17 -05:00
Tim Pope 9abe962c9d fugitive.vim 3.0
* Use custom format for :Gstatus, not literal git status output.
* Inline diffing in :Gstatus, with support for staging individual hunks.
* List unpushed and unpulled commits in :Gstatus.
* Show rebase status in :Gstatus.
* Greatly expanded set of mappings in :Gstatus. Try g?, c?, and r?.
* :Gstatus p (add --patch) is changed to P.
* :Gstatus U (checkout/clean) is changed to X. New U behavior is global reset.
* :Gstatus 2X/3X performs checkout --ours/--theirs.
* :Gstatus gI ignores file.
* Smarter :Gstatus automatic reload.
* :Git subcommand calls :Gsubcommand when appropriate.
* :Git add --patch and similar commands use :terminal.
* :Git diff, :Git log, and :Git --no-pager display results in temp buffer.
* :Git and subcommand wrappers use custom quoting rather than shell escaping.
* :Git ... ./path is relative to working directory.
* Add --option completion to :Git and git wrappers.
* Provide :G as wrapper for both :Gstatus and :Git.
* Support for :Grebase --interactive.
* :Gblame accepts all arguments, including filenames and commits.
* Support :Gblame --reverse to navigate forwards through history.
* Support :Gblame with range to blame subset of current file.
* Allow disabling dynamic blame colors with let g:fugitive_dynamic_colors = 0.
* :Glog opens quickfix list instead of displaying raw log output.
* Cleaner :Glog quickfix list leveraging Vim's new "module" format.
* :Glog no longer defaults to current file.  Use :0Glog for that.
* :0Glog follows file across renames.
* :Glog name softly deprecated in favor of :Gclog (named after :cfile).
* Provide :Grevert.
* :Gdiff renamed to :Gdiffsplit.
* :Gdiffsplit always opens one window.  Use :Gdiffsplit! for conflicts.
* Support git grep --column.
* Chdir with git -C rather than :cd for most commands. (Git 1.8.5 required)
* Show all stderr hook output on :Gcommit.
* Provide core.askPass default for Gpush and friends.
* Require bang to :Gwrite from index.
* Bug fixes.
* Polish.
2019-08-20 10:06:56 -04:00
Tim Pope b6bbb17e3f Expose IO functions as object
This is a new interface to a slightly older API for performing standard
VimL IO functions against URLs (or any other URLs, the interface is
generic).  Example wrapper function:

       function! IO(fn, ...) abort
         let file = a:fn ==# 'writefile' ? a:2 : a:1
         let obj = get(g:, 'io_' . matchstr(file, '^\a\a\+'), {})
         return call(get(obj, a:fn, a:fn), a:000)
       endfunction
       echo IO('filereadable', @%)
2019-08-20 08:51:52 -04:00
Tim Pope 9dcf1d7d81 Document important API functions 2019-08-20 08:51:52 -04:00
Tim Pope a510b3aadf Deprecate :Gstatus q 2019-08-20 08:51:52 -04:00