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