Commit Graph

564 Commits

Author SHA1 Message Date
Tim Pope
0810dcc805 Fix typo 2019-07-28 20:42:37 -04:00
Tim Pope
3b0f68180f Compensate for bad 'shellredir' 2019-07-28 19:21:01 -04:00
Tim Pope
49f3f92fd5 Guard against inadvertent :| invocation
I haven't been able to consistently reproduce it, but sometimes vim
takes :edit +CmdA\|CmdB to mean :CmdA followed by :| and not :CmdA
followed by :CmdB.
2019-07-28 19:16:28 -04:00
Tim Pope
645406f592 Use :Gdiffsplit! for diff maps
This opens a 3 way diff for merges and also focuses the more useful
window.
2019-07-28 01:20:38 -04:00
Tim Pope
7bfce97480 Provide misc :Git mappings 2019-07-28 01:12:33 -04:00
Tim Pope
3e9ef9349d Remove error guards for old object syntax 2019-07-28 01:10:37 -04:00
Tim Pope
881ad1ed0b Guard against missing output on :Gcommit success 2019-07-26 21:56:39 -04:00
Tim Pope
ebc3f35575 Require bang to :Gwrite from index
Closes https://github.com/tpope/vim-fugitive/issues/1057
2019-07-26 11:32:24 -04:00
Tim Pope
79566b5ddd Don't override alt buffer on :Gwrite from index 2019-07-26 11:32:24 -04:00
Tim Pope
d90e912e46 Provide ignoring maps
Closes https://github.com/tpope/vim-fugitive/issues/235
2019-07-24 21:27:16 -04:00
Tim Pope
2bfb6e9889 Reverse inline diff mappings
References https://github.com/tpope/vim-fugitive/issues/1199
2019-07-24 21:27:16 -04:00
Tim Pope
b92de0138d Provide rudimentary stash mappings 2019-07-23 20:44:25 -04:00
Tim Pope
d95cc5f8c2 Remove :Gedit HEAD and :Gedit refs/... special cases 2019-07-23 20:44:25 -04:00
Tim Pope
55cb58cd5f Add :Git add --intent-to-add to :Gstatus P 2019-07-23 20:44:24 -04:00
Tim Pope
ce283cbdbf Remove i special behavior on section heading 2019-07-23 20:10:48 -04:00
Tim Pope
994d1b518f Remove --intend-to-add from :Gstatus i
You can't actually apply a hunk to a file added with --intend-to-add, so
this did not pair well with the hunk expansion behavior.
2019-07-23 19:37:06 -04:00
Tim Pope
d88a0f8465 Fix :Gstatus X in visual patch selection 2019-07-23 19:24:07 -04:00
Tim Pope
54bc4ab9dd Improve error handling on :Gstatus X 2019-07-23 18:29:13 -04:00
Tim Pope
15df3f8959 Do what the user means for LANG= in g:fugitive_git_executable 2019-07-23 15:13:28 -04:00
Tim Pope
1fe6202848 Fix :Gbrowse assuming range 2019-07-22 15:20:21 -04:00
Tim Pope
a152894a55 Don't rely on exception message for :Gbrowse - error 2019-07-22 14:34:46 -04:00
Tim Pope
8a693fb7bc Restore :Gdiffsplit :n 2019-07-22 14:34:45 -04:00
Tim Pope
80996c2e2c Map c? and r? to show commit and rebase help 2019-07-21 15:27:21 -04:00
Tim Pope
238a5d8aaf Map U as :Git reset -q 2019-07-21 15:27:20 -04:00
Tim Pope
76bd7d6cb4 Map gr to jump to rebasing section 2019-07-21 15:26:58 -04:00
Tim Pope
ac97fa3781 Use terminal for :Git fetch/pull/push
I consider :Gfetch, etc, the proper interface, but allow this as a
backdoor.

References https://github.com/tpope/vim-fugitive/issues/1292
2019-07-21 15:26:47 -04:00
Tim Pope
6e2310a154 :Gstatus called from status window forces reload 2019-07-20 23:36:42 -04:00
Tim Pope
387cb5c2a0 Clean up error reporting on :Gwrite in diff 2019-07-20 23:36:42 -04:00
Tim Pope
8d584c199a Fix escaping for :Ggrep '#' 2019-07-20 23:36:42 -04:00
Tim Pope
adba9c6345 Provide core.askPass default
Closes https://github.com/tpope/vim-fugitive/issues/722
2019-07-18 16:23:01 -04:00
Tim Pope
b0de6c2811 Fix :0Glog another/path 2019-07-18 14:18:09 -04:00
Tim Pope
e25a214f78 Add an error about LANG= in g:fugitive_git_executable 2019-07-18 11:12:03 -04:00
Tim Pope
ea26a94bde Consistently position cursor on :Gstatus 2019-07-18 11:12:03 -04:00
Tim Pope
3d305c75a0 Don't print current line on :G|chainedcommand 2019-07-18 11:12:03 -04:00
Tim Pope
68b999bfd0 Remove <C-W>C map
It's not worth claiming a whole map just to save one key press.
2019-07-18 11:12:03 -04:00
ganziqim
58b2b85c9e Only check bdelete mapping in normal mode 2019-07-18 09:44:14 -04:00
Tim Pope
07661dc102 Provide additional commit maps 2019-07-16 16:36:58 -04:00
Tim Pope
2992275d8e Don't load first quickfix result into status buffer 2019-07-16 16:36:58 -04:00
Tim Pope
d8acfc35c7 Clarify in error message that :Gbrowse handlers are user installed 2019-07-16 16:36:58 -04:00
Tim Pope
0ee0498b88 Filter out warning on :Gedit master@{2.years.ago} 2019-07-16 16:00:09 -04:00
Tim Pope
469a73f3d9 Speed up :Ggrep 2019-07-15 22:41:51 -04:00
Tim Pope
a1b78969f5 Decouple :Glog from :grep
One step closer to asynchronous job support.
2019-07-15 22:41:51 -04:00
Tim Pope
158ffdbb14 Extract function to create titled quickfix list 2019-07-15 22:41:51 -04:00
Tim Pope
f83072703b Remove debugging variable 2019-07-15 22:41:35 -04:00
Tim Pope
4c650c699d Don't require shell quoting for colons
References https://github.com/tpope/vim-fugitive/issues/1289
2019-07-15 15:35:02 -04:00
Tim Pope
dafb994c92 Remove unused function 2019-07-14 14:29:26 -04:00
Tim Pope
8c80cb63e2 Fix E211 handling in :Gmerge/:Grebase 2019-07-14 14:29:26 -04:00
Tim Pope
dbdc947533 Fix <CR> as :Gblame map 2019-07-14 14:29:26 -04:00
Tim Pope
4da9fb8f43 Guard against empty filename checking for conflicts
Closes https://github.com/tpope/vim-fugitive/issues/1287
2019-07-13 07:50:11 -04:00
Tim Pope
0c259e3016 Tighten up autowrite handling 2019-07-13 07:50:11 -04:00
Tim Pope
d0049b4417 Support double quotes for all subcommand wrappers 2019-07-12 09:20:13 -04:00
Tim Pope
e169595314 Fix finishing :Gcommit on :wqa
This was added to compensate for the implicit autowrite we lost when
switching from :! to system(), but it seems calling in the
VimLeavePre/BufLeave event prevents the commit from happening on exit.
I don't fully understand it but it's easy to prevent.

Closes https://github.com/tpope/vim-fugitive/issues/1285
2019-07-12 09:20:13 -04:00
Tim Pope
a1a40c360d Provide :Gclog and :Gcgrep aliases
The distant future might hold a :Glog command that isn't bound by the
limitations of the quickfix list, so introduce an alias for the quickfix
variant to retire to.

:Gcgrep is a weird name since it directly maps to :grep, but provide it
anyways for symmetry.
2019-07-11 17:34:25 -04:00
Tim Pope
e250f9730e Fix :Gblame on win32
Closes https://github.com/tpope/vim-fugitive/issues/1284
2019-07-11 17:34:25 -04:00
Tim Pope
c33d7fcb9f Show stderr on :Gcommit
References https://github.com/tpope/vim-fugitive/pull/1115
2019-07-11 12:32:35 -04:00
Tim Pope
d176cca5ae Don't include trailing newline in fugitive#GitVersion() 2019-07-11 12:32:35 -04:00
Tim Pope
aa68223376 More helpful error on Git without -C
Closes https://github.com/tpope/vim-fugitive/issues/1283
2019-07-11 07:56:28 -04:00
Tim Pope
bdf5a221fb Use standard argument handling for :Gfetch/:Gpush 2019-07-10 14:51:56 -04:00
Tim Pope
fd48cde3b7 Fix escaping when :Grebase calls :Gcommit 2019-07-10 14:51:56 -04:00
Tim Pope
0a758c22b3 Retool :Ggrep 2019-07-10 08:22:49 -04:00
Tim Pope
bb05732d7f Begin phasing out <line2> 2019-07-10 08:22:49 -04:00
Tim Pope
de3f6d977c Fix commands on Vim without <mods>
Closes https://github.com/tpope/vim-fugitive/issues/1282
2019-07-09 19:26:44 -04:00
Tim Pope
5f9602e12f Also support :G command commit:./path 2019-07-09 13:30:07 -04:00
Tim Pope
9afa926a23 Fix subcommand completion to match :Git completion 2019-07-09 13:30:07 -04:00
Tim Pope
23138572f4 Fix :[range]Glog
Closes https://github.com/tpope/vim-fugitive/issues/1280
2019-07-09 13:30:07 -04:00
Tim Pope
ad2e408e15 Treat :G ... ./path as relative to working directory
References https://github.com/tpope/vim-fugitive/issues/504
2019-07-09 12:26:57 -04:00
Tim Pope
f38c59af7c Better error handling for obsolete argument syntax 2019-07-09 12:03:22 -04:00
Tim Pope
6b1e749849 Eliminate :cd in :Gread! and :Gblame 2019-07-09 12:03:22 -04:00
Tim Pope
2ddf4e97ef Work around broken nvim reltime()
Closes https://github.com/tpope/vim-fugitive/issues/1277
2019-07-09 12:03:22 -04:00
Tim Pope
fb66f9a86d Set loclist not qflist title for :Gllog 2019-07-09 12:02:53 -04:00
Tim Pope
9556e59765 Fix :Glog on Vim without quickfix "module" support
Closes https://github.com/tpope/vim-fugitive/issues/1279
2019-07-09 12:02:53 -04:00
Tim Pope
b48f93b550 Use proper argument parsing for :Glog 2019-07-09 06:45:58 -04:00
Tim Pope
0a4eee76e9 Don't hide :Glog errors 2019-07-09 06:45:58 -04:00
Tim Pope
1fb7fa0078 Use correct quickfix commands for :Gllog 2019-07-09 06:45:58 -04:00
Tim Pope
5c3d30223b Further tighten :Glog format 2019-07-09 06:45:58 -04:00
Tim Pope
d22a14192f Don't map file/hunk jumps in blobs 2019-07-09 06:45:58 -04:00
Tim Pope
f71a38db7d Fix argument handling for :Gmerge
This shouldn't matter in practice since :Gmerge doesn't accept path
arguments, but may as well do the right thing.
2019-07-09 06:45:58 -04:00
Tim Pope
cecfc06be3 Tweak s:Dir() usage 2019-07-09 06:45:58 -04:00
Tim Pope
102b3a50e2 Support next/previous file/hunk in commits
One of these aliases is going to end up being for files only but I'll
decide which later.
2019-07-08 15:40:47 -04:00
Tim Pope
ebd7c9ddd3 Add next/previous section maps 2019-07-08 15:39:51 -04:00
Tim Pope
45fd3f4cb8 Change interface for jumping directly to blame commit 2019-07-08 15:39:51 -04:00
Tim Pope
eaa0764940 Fix false positve matching :Glog abbreviated SHA 2019-07-08 15:39:51 -04:00
Tim Pope
85a135a9b0 Complete options for subcommand wrappers
Closes https://github.com/tpope/vim-fugitive/issues/1265
2019-07-08 10:04:58 -04:00
Tim Pope
cd78a08543 Retool diffing
Support mods, rename to match the built-in :diffsplit, and (perhaps
controversially) move three-way diffing to the bang variant, so that the
default behavior always focuses the other window.

Closes https://github.com/tpope/vim-fugitive/pull/715
2019-07-08 10:04:58 -04:00
Tim Pope
e49b9a9303 Pass bang to :Gblame to get horizontal split
Closes https://github.com/tpope/vim-fugitive/issues/1183
2019-07-08 09:41:08 -04:00
Tim Pope
362ce47ed1 Force hyphen in :Gblame -opts
I want to change the interface to allow passing an optional filename.
2019-07-08 09:41:08 -04:00
Tim Pope
668a615559 DWIM for :(top)/absolute/path 2019-07-08 09:41:08 -04:00
Tim Pope
6b02026cf9 Fix :Gblame <CR> with existing q map 2019-07-08 09:41:08 -04:00
Tim Pope
bfe74225fa Use :terminal for :Git add --patch and similar commands 2019-07-08 03:54:06 -04:00
Tim Pope
2cde9172a9 Add section jump maps
References https://github.com/tpope/vim-fugitive/issues/1252
2019-07-08 03:50:49 -04:00
Tim Pope
e0d4a281a8 Remove transitional g| mapping 2019-07-07 16:38:45 -04:00
Tim Pope
985861c083 Unify :G and :Git
The principle difference between these two is that :G uses -bar while
:Git fakes it.  Faking it enables double quotes, but I don't really
trust it.
2019-07-07 14:27:37 -04:00
Tim Pope
d0212919f3 Only map q if no conflict 2019-07-07 14:27:37 -04:00
Tim Pope
7e91b47021 Move blame syntax to separate file 2019-07-07 14:03:38 -04:00
Tim Pope
2b5fdf146a Allow disabling dynamic blame colors
Closes https://github.com/tpope/vim-fugitive/pull/986
2019-07-07 13:38:35 -04:00
Tim Pope
abefcb6ebd Add --option completion to :Git
References https://github.com/tpope/vim-fugitive/issues/1265
2019-07-07 13:16:08 -04:00
Tim Pope
2c13dfff03 Fix completion on :vert Git <Tab> 2019-07-07 13:16:08 -04:00
Tim Pope
2e0570046b Remove reload map
May as well free this up now because we're running short on maps.
2019-07-07 13:16:08 -04:00
Tim Pope
73b7e5e23f Use proper argument parsing for :Gcommit 2019-07-07 06:39:29 -04:00
Tim Pope
e7f272a36c Change :Git! to split by default 2019-07-07 01:41:55 -04:00
Tim Pope
20bdfee4b7 Extract :Gsplit! implementation 2019-07-06 13:48:23 -04:00
Tim Pope
a50e072587 Fix handling of bar in argument parsing 2019-07-06 13:48:23 -04:00
Tim Pope
2fdba349f5 Make completion more robust 2019-07-06 13:20:15 -04:00
Tim Pope
aa41caf6c7 Lay groundwork for running commands without Git dir 2019-07-06 13:20:15 -04:00
Tim Pope
00bced7c53 Drop support for :Gblame -fn
The double dash options create false positives so this feature no longer
works correctly.
2019-07-06 13:20:15 -04:00
Tim Pope
f33ac1b2a7 Use proper argument parsing in :Gmerge/:Grebase 2019-07-06 11:19:18 -04:00
Tim Pope
2503a957ff Better helper function names for expanding split 2019-07-06 10:20:10 -04:00
Tim Pope
e87c612491 Jump to appropriate section for s/u on :Gstatus header 2019-07-06 08:56:39 -04:00
Tim Pope
0816915503 Restore popular fugitive#buffer() methods
I don't want outdated third party plugins to prevent people from
installing the upcoming stable release.
2019-07-06 08:56:39 -04:00
Tim Pope
81e57453ce Compensate for very old Vim without settabvar() 2019-07-06 08:56:39 -04:00
Tim Pope
873ede7aa4 Provide argument list version of s:UserCommand() 2019-07-06 08:56:39 -04:00
Tim Pope
d1671f1fce Fix :Gedit > 2019-07-06 08:56:39 -04:00
Daniel Hahler
48e612601b s:BuildShell: fix E706
This happens with old Vim versions (before 7.4.1546):

> Vim(let):E706: Variable type mismatch for: cmd

Ref: https://github.com/vim/vim/commit/f6f32c38b
2019-07-06 07:20:40 -04:00
Tim Pope
fdb57922a4 Update escaping for dynamic :Git invocations 2019-07-06 02:17:38 -04:00
Tim Pope
a025157c5f Don't rely on shell for quoting
Using shell syntax for Fugitive commands has a number of disadvantages:

* Commands behave differently depending on shell and platform.
* Checking for arguments (e.g., did :Ggrep receive --cached?) is
  impossible to do robustly.
* Double quoted strings conflict with -bar command chaining.
* Need to use %:S to for expansions, and backslash escaping even inside
  single quotes.

This is an experiment that instead implements the quoting ourselves.

For backwards compatibility, :Git and :Gcommit support double quoted
strings, but this is deprecated.
2019-07-06 00:55:25 -04:00
Tim Pope
3684c01ef4 Smarter :Gstatus reload 2019-07-05 10:36:06 -04:00
Tim Pope
0f46d5ce32 Don't throw exception on :Gedit :bogus 2019-07-05 10:36:06 -04:00
Tim Pope
ef820b7577 Separate argument massaging from shell quoting 2019-07-05 08:03:53 -04:00
Tim Pope
137433c3c0 Eliminate shell syntax in :Gstatus undo 2019-07-05 05:03:57 -04:00
Tim Pope
ed5ac8dc5d Fix jump to patched line in :Gstatus 2019-07-05 05:03:57 -04:00
Tim Pope
a0e8f59b68 Make :Glog a bit less insufferable
This desperately needs async job support, but until I get around to
implementing that, this will have to do.
2019-07-04 08:49:00 -04:00
Tim Pope
04c68837d3 Fix stacking untracked files 2019-07-04 08:48:54 -04:00
Tim Pope
a9572e9ea6 Fix inline diff expansion 2019-07-04 08:44:42 -04:00
Tim Pope
4466eeb47a Restore "Untracked" section 2019-07-04 07:29:08 -04:00
Tim Pope
c62d23bc18 Change s:StageInfo() to use absolute paths like s:Selection() 2019-07-04 07:29:08 -04:00
Tim Pope
51c54138ba Fix count on :Gstatus maps 2019-07-04 07:14:07 -04:00
Tim Pope
fc6643c318 Remove hard coded length limit of 40 on hashes
SHA-256 is coming eventually, may as well rip these out now.
2019-07-04 02:36:26 -04:00
Tim Pope
302ee3b41c Fix P in :Gstatus 2019-07-03 17:17:45 -04:00
Tim Pope
cf5b43443f Encapsulate "-z" null splitting 2019-07-02 06:58:50 -04:00
Tim Pope
39087fed59 Encapsulate system() plus v:shell_error 2019-07-02 06:58:50 -04:00
Tim Pope
77d86594cc Encapsulate common v:shell_error usages 2019-07-02 06:58:50 -04:00
Tim Pope
17618402fa Remove :terminal special case for Neovim :Git
Neovim appears to be better about not locking up on terminal input, and
GIT_TERMINAL_PROMPT=0 gives us belt-and-suspenders protection.
2019-07-01 18:37:00 -04:00
Tim Pope
461c1beefa Fix extra space in win32 environment variables
Closes https://github.com/tpope/vim-fugitive/issues/1271
2019-07-01 17:59:25 -04:00
Tim Pope
b343a4bec0 Add error handling to s:TreeChomp() 2019-07-01 05:52:05 -04:00
Tim Pope
14649fb858 Restore autowrite before :Gcommit 2019-07-01 05:52:02 -04:00
Tim Pope
3d252dac21 Avoid use of :! in :Gcommit
References https://github.com/tpope/vim-fugitive/issues/435
2019-07-01 00:02:42 -04:00
Tim Pope
cf9c04af06 Eliminate environment juggling in :Gcommit 2019-07-01 00:02:42 -04:00
Tim Pope
74fc4b5eea Avoid intermediary v:errmsg in exception handling 2019-07-01 00:02:42 -04:00
Tim Pope
4a94b374d0 Fix bug revealing next hunk 2019-06-29 20:50:14 -04:00
Tim Pope
7c66d544e5 Only target current file if range is given to :Glog 2019-06-29 19:55:16 -04:00
Tim Pope
c8ac43422e Adjust viewport position *after* reload
References https://github.com/tpope/vim-fugitive/issues/1268
2019-06-29 19:19:09 -04:00
Tim Pope
9c195de61b Fix dd in :Gstatus staged section
References https://github.com/tpope/vim-fugitive/issues/1269
2019-06-28 14:42:01 -04:00
Tim Pope
cb4bb94f7b Fix dd in :Gstatus
Closes https://github.com/tpope/vim-fugitive/issues/1269
2019-06-28 14:31:37 -04:00
Tim Pope
198e9c4128 Improve :Gstatus support for renames
Closes https://github.com/tpope/vim-fugitive/issues/1175
2019-06-27 23:49:32 -04:00
Tim Pope
8e024f9bcc Add <mods> helper function 2019-06-27 23:49:32 -04:00
Tim Pope
192538c0a7 Fix :Gstatus overscroll when already at bottom of document 2019-06-27 23:09:34 -04:00
Tim Pope
0f20c35b62 Fix error on :Gedit with no argument 2019-06-25 16:28:36 -04:00
Tim Pope
fc529da8ae Work around autowrite bug when :terminal is open 2019-06-25 14:03:33 -04:00
Tim Pope
a0815c7010 Retire :Gedit -..., :Gedit @{...}, and :Gedit :n
I'm introducing :Gedit >... as a new shorthand because a leading > is
handled by fnameescape(), but it's very ugly, I don't think I want to
make it official.
2019-06-25 04:33:36 -04:00
Tim Pope
aff3359699 Retire :Gedit ^n and :Gedit ~n 2019-06-25 04:06:38 -04:00