100 Commits
Author SHA1 Message Date
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
Tim Pope c63fd1b71b Support a...b as notation for merge base
Closes https://github.com/tpope/vim-fugitive/pull/913
2019-08-19 11:25:39 -04:00
Tim Pope e768806266 Remove obsolete Git object examples 2019-08-19 11:22:52 -04:00
Tim Pope f29298880f Provide FugitiveGitPath() 2019-08-19 09:04:32 -04:00
Tim Pope 2b6199594a Use FugitiveVimPath() to normalize directories during detection 2019-08-19 09:04:32 -04:00
Tim Pope fd7b5d8a1e Rename s:PlatformSlash() to FugitiveVimPath() 2019-08-19 08:41:15 -04:00
Tim Pope e759a85486 Provide separate highlight groups for file sections
References https://github.com/tpope/vim-fugitive/issues/1159
2019-08-19 08:05:22 -04:00
Tim Pope 85ffe4754e Remove dead code 2019-08-19 06:42:44 -04:00
Tim Pope c242cb6369 Provide maps to find similar diff lines 2019-08-18 10:53:21 -04:00
Tim Pope ff058bf5b7 Fix diff after :Gwrite
This works around a bug in Vim that was fixed in patch 8.0.0421.

Closes https://github.com/tpope/vim-fugitive/issues/1102

References https://github.com/tpope/vim-fugitive/pull/859
2019-08-18 10:53:20 -04:00
Tim Pope ed6f4256fc Change work tree buffer on :Gwrite exactly once 2019-08-18 09:11:10 -04:00
Tim Pope 1c22b69652 Remove dp map in blobs
The built-in is actually useful so don't shadow it.
2019-08-18 09:11:10 -04:00
Tim Pope 52f71a3154 Follow renames on :0Gclog
Closes https://github.com/tpope/vim-fugitive/issues/563
2019-08-18 07:18:17 -04:00
Tim Pope fdbcad0624 Allow expanding merge conflict in :Gstatus
Closes https://github.com/tpope/vim-fugitive/issues/1242
2019-08-18 04:58:59 -04:00
Tim Pope bbd9afe790 Provide map to close diff buffers 2019-08-18 04:58:59 -04:00
Tim Pope f2ca0e43a1 Give s:MapEx() more intention revealing name 2019-08-18 04:58:59 -04:00
Tim Pope 25581bf775 Support discarding multiple changes in visual mode
Closes https://github.com/tpope/vim-fugitive/issues/944
2019-08-18 01:51:38 -04:00
Tim Pope e69a3ea21a Add nested to reload status autocommands
References https://github.com/tpope/vim-fugitive/pull/889
2019-08-17 08:43:21 -04:00
Tim Pope 442d56e23c Fix :Glog 2019-08-16 13:48:46 -04:00
Tim Pope d6f7eaf16c Compensate for 'noequalalways' in merge diff
Closes https://github.com/tpope/vim-fugitive/issues/674
2019-08-16 07:08:05 -04:00
Tim Pope b6dbe402e8 Fix :Glog with diff.noprefix set
Closes https://github.com/tpope/vim-fugitive/issues/606
2019-08-16 07:08:05 -04:00
Tim Pope 86c276d629 Fix version check for doautocmd <nomodeline> 2019-08-16 07:08:05 -04:00
Tim Pope 2518ef9a02 Map double click to jump to file
References https://github.com/tpope/vim-fugitive/pull/620
2019-08-15 22:58:37 -04:00
Tim Pope bb82255490 Add :help reference to README 2019-08-15 22:46:36 -04:00
Tim Pope a8163625f8 Vim automatically sets cursorbind for diff buffers
References https://github.com/tpope/vim-fugitive/pull/937
2019-08-15 22:39:04 -04:00
Tim Pope 7079d0c7e2 Convert all FugitivePrepare() int arguments to buffer names 2019-08-15 22:01:27 -04:00
Tim Pope 4f51d99f44 Encapsulate shell escaping user arguments 2019-08-15 22:01:27 -04:00
Tim Pope c972b2a065 Fix :Ghdiffsplit with diffopt=vertical
Closes https://github.com/tpope/vim-fugitive/issues/990
2019-08-15 19:40:46 -04:00
Tim Pope cf9ef7377f Don't process modelines after :Gwrite
Closes https://github.com/tpope/vim-fugitive/issues/956
2019-08-15 17:53:27 -04:00
Tim Pope 45ca1eab83 Use platform slashes for :Gcd
The only current difference is backslashes on Windows, which aren't
required, but this may evolve into larger changes in the future.
2019-08-15 17:53:27 -04:00
Tim Pope a80b965d0d Remove legacy support for /relative/path 2019-08-15 17:53:27 -04:00
Tim Pope 03361373b1 Fix :Gstatus U map 2019-08-15 17:53:13 -04:00
Tim Pope 6a04e875f8 Provide diff maps in blobs 2019-08-15 11:49:54 -04:00
Tim Pope 557cc74141 Fix syntax error
Closes https://github.com/tpope/vim-fugitive/issues/1310
2019-08-15 11:49:54 -04:00
Tim Pope b887de5ce2 Don't reuse blame buffers for Gstatus edits 2019-08-15 03:47:13 -04:00
Tim Pope 6cc52a1aab Fix extra bang in diff maps 2019-08-15 03:47:13 -04:00
Tim Pope faa895239b Clean up gitdir file parsing 2019-08-15 03:34:00 -04:00
Tim Pope 6eb885c017 Always diff against parents in :Gdiffsplit! 2019-08-14 11:06:42 -04:00
Tim Pope 308e4bf241 Fix temp file gq shadowing blame gq 2019-08-14 09:38:39 -04:00
Tim Pope 7d484eaf52 Use s:Map() for nearly all maps 2019-08-14 09:38:39 -04:00
Tim Pope 34bfcd471b Fix error generating command for :'<,'>Gblame
Closes https://github.com/tpope/vim-fugitive/issues/1308
2019-08-14 09:38:39 -04:00
Tim Pope 1d2821f91e Clarify :Gstatus p behavior
I've seen a lot of confusion in the wild around this, and the old
behavior is immortalized in the Vimcasts.  Lets make this an error while
we regroup.
2019-08-14 01:44:13 -04:00
Tim Pope 53e5e61afa Emphasize :Glog behavior change
Let's go ahead and embrace :Gclog as a warning free version of the
command.
2019-08-14 01:44:13 -04:00
Tim Pope 1359d620eb Force <nowait> for all generated maps 2019-08-13 23:32:50 -04:00
Tim Pope 5defa72b81 Provide count on blob blame maps for --reverse 2019-08-13 21:31:01 -04:00
Tim Pope c21736dde7 Jump to file not diff for boundary commit in :Gblame 2019-08-13 21:31:01 -04:00
Tim Pope 11691b38bb Allow :Gblame ^boundary to use scrollbind 2019-08-13 21:31:01 -04:00
Tim Pope 69bf0e3469 Accept commit.. :Gblame argument as commit not filename 2019-08-13 20:58:10 -04:00
Tim Pope e7c2563288 Remove bang variant of :Git from README
This happens for the important commands automatically, and the new
override syntax is -P/--no-pager.
2019-08-13 19:44:17 -04:00
Tim Pope c0ce201c3b Remove :Git --paginate from docs
I thought the --paginate option was basically the opposite of
--no-pager, but it actually forces the entire command to run through a
pager, breaking a lot of interactive commands.  Let's de-emphasize it as
a solution.
2019-08-13 19:44:17 -04:00
Tim Pope 49b777ae44 Use rev-list in lieu of log with raw format 2019-08-13 17:24:17 -04:00
Tim Pope f33a53bceb Remove debug 2019-08-13 17:20:56 -04:00
Tim Pope 16bfd4fa92 Fix offset jumping to patch on :Gblame --reverse 2019-08-13 17:20:03 -04:00
Tim Pope 8038ee60a9 Fix -1 effectively canceling --reverse
Is there a way to apply a limit at the print level rather than the query
level?
2019-08-13 17:12:28 -04:00
Tim Pope 08a9a45dbc Support :rightbelow Gblame and other <mods>
Closes https://github.com/tpope/vim-fugitive/issues/976
2019-08-13 16:27:28 -04:00
Tim Pope 0a7ffc5d67 Use descendant when jumping to patch for :Gblame --reverse
References https://github.com/tpope/vim-fugitive/issues/1305
2019-08-13 16:27:28 -04:00
Tim Pope 0392f64a93 Make :Gblame a proper subcommand 2019-08-13 15:28:01 -04:00
Tim Pope d1033e756e Cleaner error on -z command failure 2019-08-13 15:28:01 -04:00
Tim Pope 79b1f16a7a Delegate :Git grep to :Ggrep 2019-08-12 00:12:18 -04:00
Tim Pope 03710a877a Use same window for commit message on :0Gcommit 2019-08-12 00:12:18 -04:00
Tim Pope b4d40abb10 Use lower case for subcommand declarations 2019-08-11 22:36:29 -04:00
Tim Pope 3ca888470b Expand diffs on :Gcommit --patch 2019-08-11 22:36:29 -04:00
Tim Pope 4460aeffdd Use temp buffer with man filetype for :Git help 2019-08-11 18:40:25 -04:00
Tim Pope 078210c718 Use temp buffer for :Git show and :Git stash show 2019-08-11 18:40:24 -04:00
Tim Pope d417fd3199 Move blame buffer settings to FileType event
The goal here is to extract just the settings that would work outside of
a vertical split with 'scrollbind' in effect, so we can one day add a
second mode.
2019-08-11 17:33:45 -04:00
Tim Pope 4daa0c558c Support nearly all git-blame flags 2019-08-11 01:17:22 -04:00
Tim Pope 7686b7dc5c Support blame.blankBoundary with Ignore highlight 2019-08-11 01:03:09 -04:00
Tim Pope 68f0cb87a9 Don't require <mods> for vertical/tab blame culprit maps 2019-08-11 01:03:09 -04:00
Tim Pope 9ca6e0c633 Remove q from :Gblame documentation 2019-08-10 22:24:35 -04:00
Tim Pope 97e993611e Highlight blame --score-debug and blame -c 2019-08-10 22:24:35 -04:00
Tim Pope 54f155218a Remove duplicate b:fugitive_status initialization 2019-08-10 22:24:35 -04:00
Tim Pope c7e3df5283 Provide some commit --reset-author maps
Supporting flags with additional maps is a pretty limited solution, as
there's no way to combine them (that is, we'd need to map both cRva and
cvRa to get both verbose and reset-author, and that's as silly as it is
hard to type in under a second).  I think some kind of getchar()
dispatcher is going to be the long term solution.
2019-08-10 22:24:35 -04:00
Tim Pope bc3d36e559 Remove 'guioptions' workaround 2019-08-09 00:51:59 -04:00
Tim Pope 8227503714 Open :Gstatus for :Gcommit -i and :Gcommit -p 2019-08-09 00:33:28 -04:00
Tim Pope f0acf3e883 Show dirty submodules in Unstaged section
Closes https://github.com/tpope/vim-fugitive/issues/1204
2019-08-09 00:33:28 -04:00
Tim Pope a09e49d2bb Support :Gblame --reverse
Closes https://github.com/tpope/vim-fugitive/issues/1305
2019-08-08 21:02:40 -04:00
Tim Pope cce9ca0933 Move select temp file configuration to BufReadPre
This allows the natural machinery to kick in rather than invoking
FugitiveDetect() and fugitive#MapJumps() explicitly.
2019-08-08 21:02:40 -04:00
Tim Pope 0a536ed5af Don't unnecessarily change ":verbose set scrollbind?" 2019-08-08 20:24:40 -04:00
Tim Pope 9420d05ddd Eliminate b:fugitive_blamed_bufnr 2019-08-08 20:24:40 -04:00
Tim Pope 6db7120c9a Don't double set temp options on blame buffer 2019-08-08 20:24:40 -04:00
Tim Pope 4a42d4e21c Encapsulate retrieval of blamed bufnr 2019-08-08 20:24:40 -04:00
Tim Pope 206b54a147 Retool :Gblame close map 2019-08-08 20:24:40 -04:00
Tim Pope 1260de3b7d Fix :Gread blobhash
References https://github.com/tpope/vim-fugitive/issues/836
2019-08-08 18:15:39 -04:00
Tim Pope 9d36dc2d74 Check for built-ins with .exe extension on Windows 2019-08-08 01:44:44 -04:00
Tim Pope 0db4ceb980 Restore press enter prompt in :Ggrep in GUI 2019-08-07 19:31:35 -04:00
Tim Pope 95c1f1525d Fix accidental utility invocation on :Git complete 2019-08-07 18:12:07 -04:00
Tim Pope cfca94c723 Expand simple aliases in :Git
This lets you alias ca = `git commit -a` and have `:Git ca` call
`:Gcommit -a`.
2019-08-07 17:31:14 -04:00
Tim Pope edae34e02f Fix count with jump to commit section 2019-08-07 00:52:38 -04:00
Tim Pope d7172882b7 Add default core.askPass to :Gpull 2019-08-06 20:01:18 -04:00
Tim Pope 511e32114b Swap gu and gU 2019-08-06 19:39:26 -04:00
Tim Pope 0cc3beeae9 Tweak commit for u rebase map 2019-08-06 14:32:39 -04:00
Tim Pope 0484c03c6b Allow :Grevert --abort/continue/quit 2019-08-06 14:10:45 -04:00
Tim Pope 9d77fd566c Add Git dir presence guard to all commands
This isn't necessary for the current implementation, but could enable
making the commands (or at least the underlying commands) global.
2019-08-06 14:10:45 -04:00
Tim Pope 35d7590354 Provide s/u mappings on commits
I need to figure out the big picture push story before I can document
the push maps.
2019-08-06 14:10:38 -04:00
Tim Pope c4d4986f1e Delegate :G command to :Gcommand for 8 commands 2019-08-04 00:05:18 -04:00
Tim Pope fb9acc6831 Add a FAQ entry about remote passwords 2019-08-03 21:38:28 -04:00
Tim Pope 81eec879a4 Update :Gstatus description in README 2019-08-03 21:38:28 -04:00