Commit Graph

480 Commits

Author SHA1 Message Date
Tom McDonald
7423d72b51 Ensure clipboard support before using * register
Closes #526.
2014-07-23 17:46:47 -04:00
Tim Pope
24d4098ceb Change arity of browse API
It's debatable whether the repo object should be passed at all, so let's
not commit to a positional parameter for it.

References #445.
2014-07-22 20:48:40 -04:00
Tim Pope
5aaa65736d Browse handler API
Taking experimental out of the name, but small tweaks may occur before
then next release.

For future compatibility, any third party handlers should bail and
return an empty string if any of the following are true:

* More than 2 arguments are given.
* The second argument isn't a dictionary.
* The dictionary doesn't contain a "remote" key.

Closes #445.
2014-07-22 00:18:24 -04:00
Tim Pope
5d1c219ee5 Fix load order issue 2014-07-17 21:05:03 -04:00
Tim Pope
a739112bfc Experimentally expose browse API
References #445.
2014-07-17 20:16:28 -04:00
Tim Pope
9af975c82c Don't run pre-commit hook on merge 2014-07-07 21:23:22 -04:00
Tim Pope
11f89ba749 Only change 'tags' if tags file exists
Closes #402.  References #426.
2014-07-06 00:20:19 -04:00
Tim Pope
45e5317200 Try harder to avoid -esp on :Gcommit follow-up
Closes #516.
2014-07-05 19:01:00 -04:00
Tim Pope
ee2b0ecdb8 Provide :Gpush and :Gfetch
Closes #450.
2014-06-30 14:30:44 -04:00
Tim Pope
94a5d6fe2f Fix :Gcommit when closing message lands in different project 2014-06-30 14:02:53 -04:00
Tim Pope
0cd33c6170 :Gcommit -v opens message in new tab
Closes #513.  References #480.
2014-06-29 14:52:43 -04:00
Tim Pope
6239f5ed8e Ignore ^[[K lines from progress output 2014-06-29 14:46:16 -04:00
Tim Pope
188692556a Fix subcommand complete when cursor mid-line 2014-06-29 11:02:47 -04:00
Tim Pope
716f3d2d4e Expose list of global git subcommands 2014-06-29 10:54:57 -04:00
Tim Pope
8576741d61 Don't quote url argument to :Browse 2014-06-26 17:08:59 -04:00
Tim Pope
32957cb552 Invoke :Browse if available to open URL
Example that invokes open(1) on OS X:

    command! -bar -nargs=1 Browse silent! !open <args>

Closes #509.
2014-06-26 17:07:07 -04:00
Tim Pope
fdc8569c18 :Gblame in blame buffer deletes buffer
Closes #511.
2014-06-26 14:40:09 -04:00
Tim Pope
7fb703534a :Gmerge and :Gpull 2014-06-25 13:05:14 -04:00
Tim Pope
41cdbdcd62 Force :Gstatus U to root of tree
References #97.
2014-06-25 10:29:17 -04:00
Tim Pope
91900baad1 Set cursorbind in :Gblame 2014-06-24 23:10:57 -04:00
Tim Pope
fb5661211d Colorize hashes in blame
References #369.
2014-06-24 21:54:25 -04:00
Tim Pope
276f89837f Use -L to handle :Glog range
Closes #507.  References #286.
2014-06-24 19:36:47 -04:00
Tim Pope
4581cd4217 Support -L in :Glog errorformat
References #507.
2014-06-24 19:36:47 -04:00
Tim Pope
df103dc595 fugitive.vim 2.1
* Fix :Gdiff horizontal/vertical disposition.
2014-06-24 16:38:01 -04:00
Tim Pope
123d2e096d Fix diff direction 2014-06-23 20:06:34 -04:00
Tim Pope
f880016a30 fugitive.vim 2.0
* <C-R><C-G> in :Gstatus recalls cursor line filename.
* Map dp to show diff in :Gstatus.
* Add ca and cA commit maps to :Gstatus.
* Add cc alias for C in :Gstatus.
* Disable swapfile in :Gstatus.
* Replace :Gstatus cv with cva and cvc.
* Add an `S` mapping for vertical splits from :Gstatus.
* Close diffs when navigating from :Gstatus.
* Enable folding in :Gstatus.
* Accept a count with :Gstatus <C-N>/<C-P>.
* Allow <C-p> pass through to ctrlp.vim in :Gstatus.
* Add . in :Gstatus to prepopulate command line with revision.
* Fix :Gstatus dp with external diff enabled.
* Force displayCommentPrefix to fix :Gstatus on 1.8.5+.
* Support localized `git status`.
* Map g? and <F1> to show help in :Gstatus and :Gblame.
* Kill relativenumber in blame buffer.
* Fix jump to line on reblame.
* Return to blamed buffer on q in blame.
* Restore blamed window on gq in blame.
* Fix :Gblame scrollbind with folds.
* Jump from blame to commit focuses relevant diff.
* :Gblame: Retain original alternate buffer.
* Use - not <CR> for reblame.
* Switch :Gblame <CR> to open commit.
* Open fold when jumping to commit from blame.
* Add maps for resizing blame window.
* Conceal file names and line numbers in :Gblame.
* Set winfixwidth in :Gblame buffers.
* Press <CR> in :Gblame to open commit (reblame is now -).
* Better csh support.
* Work around "always" color option.
* Fix trailing blank line when editing index files.
* Use HTTPS for GitHub URLs in README.
* :Gdiff split direction based on 'diffopt' and window size.
* Focus diff window on :Gdiff.
* Restore options when turning off diff mode.
* Set bufhidden=delete in historical buffers.
* Fix modeline errors in historical buffers.
* Change cp to cP.
* Add :Git! et al. for loading output into a buffer.
* Tab complete Git aliases.
* Enter on a +/- diff line jumps to that line.
* Better Windows support.
* Support core.autocrlf=false on Windows.
* Work around slow \\ Windows network path.
* Work around .git in 'wildignore'.
* Fix garbage during :Gcommit with alternate screen.
* Fix garbling on :Gcommit when nothing is staged.
* Hack around broken :Gcommit with symlinked .git.
* Use y<C-G> to yank the current object's path.
* Preserve alternate file in :Gmove.
* Support bare repositories that don't end in .git.
* Support .git-file repositories (including submodules).
* Support symlinked .git if core.worktree is set.
* Fix redraw issue after :Gbrowse.
* Support GitHub FI in :Gbrowse.
* Support implicit GitHub username in remote for :Gbrowse.
* Make fugitive commands available in nerdtree buffers.
* Make fugitive commands available in command line window.
* :Glgrep and :Gllog.
* :.Glog jumps to same line in each file.
* Map - to go up a directory.
* Provide custom 'foldtext'.
* Respect $GIT_CEILING_DIRECTORIES.
* Look for $GIT_DIR and $GIT_WORK_TREE.
* Improve Windows support.
* Assorted bug fixes.
2014-06-23 09:50:00 -04:00
Tim Pope
fba20539e7 Revert "Allow erroneous swap warning through."
This reverts commit 30facffd5b.
2014-06-22 19:36:43 -04:00
Tim Pope
750db5e5b9 Always treat cmd.exe as Windows
Closes #506.
2014-06-22 13:30:41 -04:00
Tim Pope
ffd8c0ad58 Restore commit autocmd
Closes #505.
2014-06-22 12:46:38 -04:00
Tim Pope
018ea3955b Disambiguate add path with -- 2014-06-22 12:27:26 -04:00
Tim Pope
9f9dabc1f8 Use relative path in :Gwrite
Closes #212.
2014-06-22 12:24:26 -04:00
Tim Pope
82580253e8 Typo
References #97.
2014-06-22 08:31:12 -04:00
Tim Pope
021918c3f6 Remove junk 2014-06-21 15:35:47 -04:00
Tim Pope
0d7cb020bd Don't wincmd p if just one window
Closes #397.
2014-06-21 14:19:13 -04:00
Tim Pope
30facffd5b Allow erroneous swap warning through.
Closes #192, #352.
2014-06-21 14:06:20 -04:00
Tim Pope
f32bdf1a7b Only :diffoff our own diffs
Closes #395.
2014-06-21 13:44:44 -04:00
Knut Franke
4a77929a32 Make <CR> jump to sha under cursor
This is particularly handy for commit messages, which often reference
other commits by their abbreviated sha.
2014-06-21 11:49:09 -04:00
Tim Pope
dff9b92cde Fix status reload after rename
Closes #354.
2014-06-21 11:28:46 -04:00
Tim Pope
419f1ee910 Fix :Gcommit -c
Closes #356.
2014-06-21 11:19:59 -04:00
Tim Pope
e3904723f8 Keep alternate file on :Gdiff
Closes #357.
2014-06-21 11:17:59 -04:00
Tim Pope
652c27a46b Use 'shellslash' to detect Windows shell 2014-06-21 11:14:51 -04:00
Tim Pope
336c716ba0 Encapsulate Windows shell conditional 2014-06-21 11:13:21 -04:00
Tim Pope
585fcc8a9b Use netrw not web--browse to invoke browser
Closes #411.
2014-06-21 10:30:20 -04:00
Tim Pope
4b75c7bff2 Enforce foldmethod=syntax in commits
Closes #432.
2014-06-21 10:25:30 -04:00
Tim Pope
b0bc71460a :.Glog adds current line number to each entry
Closes #286.
2014-06-21 10:18:41 -04:00
Tim Pope
061a81f247 Provide checkout/unlink on U in :Gstatus
Closes #97.
2014-06-21 10:05:46 -04:00
Tim Pope
15fbbf7296 Prefer :Gdiff to :Gvdiff for D in :Gstatus 2014-06-21 09:37:51 -04:00
Tim Pope
64c690603e Change reload map to r 2014-06-21 09:33:59 -04:00
Eric Christopherson
269c89ef59 Ignore E302 "Could not rename swap file" error
According to `:help E302`, E302 comes from Vim being unable to rename
the swap file when an open buffer's name is changed; but the error is
mostly harmless. E302 seems to occur in vim-fugitive under Windows but
not *nix.

This fix allow :Glog and :Gdiff to work on such systems; previously the
uncaught error made these operations fail or at least work strangely.
2014-06-21 09:08:49 -04:00
Tim Pope
e6e259c2d2 Change section heading style 2014-06-21 08:48:11 -04:00
Bastian Winkler
3e3a899cf1 Restore 'foldenable' setting when diff ends
After finishing a diff session, the foldenable settings should be
restored to it's previous value.
2014-06-21 08:44:50 -04:00
Tim Pope
cad80493f4 Account for third window width in merge diff 2014-06-21 08:35:58 -04:00
Tim Pope
aed0043a1f Include foldcolumn in diff width calculation 2014-06-21 08:27:36 -04:00
Tim Pope
c5a3c5f8ce Smart choice of vertical or horizontal diff 2014-06-21 08:18:46 -04:00
Tim Pope
0a19a3e78f Fix untracked false positive on unmerged files
References #440.
2014-06-20 07:52:34 -04:00
Tim Pope
7fd14b218e Fix version number 2014-06-20 07:52:28 -04:00
Tim Pope
99809a021c Don't gratuitously clobber quickfix in :Ggrep 2014-06-19 16:40:26 -04:00
Tim Pope
2b05b275f5 Simplify tab completion 2014-06-17 02:30:30 -04:00
Tim Pope
c4713200f7 Cleaner :Git commands 2014-06-11 03:30:27 -04:00
Caleb Thompson
545578538c Override status.short configuration
Git allows the "status.short" configuration to implicitly pass `--short`
to git-status. Override that value so that we see "long" status format.
2014-06-10 23:28:53 -04:00
Tim Pope
6f5fd2add0 Fix fold opening 2014-06-10 18:46:04 -04:00
Tim Pope
416165f063 Check correct window for 'diff' on BufWinLeave
Closes #493.
2014-05-30 14:26:40 -04:00
Daniel Harding
f8bf95b9ff Fix Gblame problems on Windows
On Windows, if Vim is invoked with a working directory starting with a
lowercase drive letter (e.g. c:\<path> instead of C:\<path>), some
mappings in the blame buffer do not work correctly.  For example,
hitting Enter on a line throws an exception rather than showing the
associated commit.  The reason for this is that the b:git_dir variable
is not being set on the blame buffer.  The reason in turn for this is
that the path to the blame buffer is being stored in s:temp_files with
an uppercase drive letter, but in the fugitive_temp augroup, '<afile>:p'
is being expanded with a lowercase drive letter, so the lookup in
s:temp_files fails.  Fix this by converting paths to lowercase before
using them as keys for the s:tempfile dictionary.  Because of the way
Vim generates temporary file names, this is safe even on platforms with
case-sensitive file systems.
2014-05-12 13:59:35 -04:00
Tim Pope
c99f0ff06b Restore ridiculous hack to set cursor position on :Gdiff
This time with :setlocal.

Closes #471.  References #475.
2014-04-14 13:34:37 -04:00
Tim Pope
07c58226df Revert "Ridiculous hack to set cursor position on :Gdiff"
This reverts commit c8070aec7e.

Closes #471.
2014-04-13 18:11:25 -04:00
Tim Pope
4f80883e05 Limit scope of ctrlp.vim :Gstatus hack 2014-04-10 14:53:49 -04:00
Tim Pope
bf14c9c8a3 Drop support for CtrlP in history
This is fairly straightforward to do outside of fugitive.vim, and
there's no reason to give it privileged treatment here.

Closes #403.
2014-04-10 14:52:47 -04:00
Tim Pope
e7c7149434 Map both g? and <F1> to show help
Closes #273.
2014-04-07 05:00:41 -04:00
Tim Pope
c8070aec7e Ridiculous hack to set cursor position on :Gdiff
References #429.
2014-04-07 03:52:31 -04:00
Tim Pope
21b60b309d Support implicit github username in remote
Closes #466.
2014-04-02 18:09:33 -04:00
Tim Pope
9649b02076 Fix modeline errors in historical buffers
Our doautocmd in s:ReplaceCmd already processes the modelines while the
buffer is still modifiable, so we can disable it after tha prevent
subsequent invocations.

Closes #323.
2014-04-02 02:32:20 -04:00
Tim Pope
cbab574164 Make commands available in command line window
Closes #325.
2014-04-02 02:14:32 -04:00
Tim Pope
72d382077c Revert "Work around issue using buffer number rather than name"
This reverts commit d6540b2588, which
caused all sorts of breakages with buffer names with brackets in them.
This was greatly exacerbated by airline.vim setting an erroneous
b:git_dir in plugin buffers based on the current working directory.

Closes #464. Closes #463. Closes #461.
2014-04-01 19:02:15 -04:00
Tim Pope
17393f552e Don't blow up on type checking empty buffers
Closes #462.
2014-03-31 19:14:57 -04:00
Craig Main
51cdb1b190 Cater for powershell as well as cmd for windows users 2014-03-31 02:33:44 -04:00
Tim Pope
c1664de7b4 Don't blow up on vanishing HEAD
Closes #459.
2014-03-30 13:14:00 -04:00
Tim Pope
d6540b2588 Work around issue using buffer number rather than name
Observed on the OS X Mavericks install of Vim 7.3.
2014-03-27 18:01:06 -04:00
Tim Pope
22cc877e64 Add missing aborts 2014-03-27 17:22:35 -04:00
Tim Pope
218fc37ce1 Revert "Work around more 'wildignore' silliness"
This reverts commit 3bfa0a2725.

Closes #457.
2014-03-27 17:21:29 -04:00
Tim Pope
3bfa0a2725 Work around more 'wildignore' silliness 2014-03-26 14:25:44 -04:00
Tim Pope
fd297ad11f Set winfixwidth
Closes #453.
2014-03-25 13:37:57 -04:00
Tim Pope
a069fa7066 Accidental omission from previous commit 2014-03-25 13:37:19 -04:00
Tim Pope
d6f17608dd Support :Gcommit --patch
Closes #452.
2014-03-20 13:21:19 -04:00
Tim Pope
70ec927890 Improve keepjumps situation 2014-03-19 23:36:20 -04:00
Tim Pope
b27937d5e4 Turn off swap files in all URL buffers
References #202.
2014-03-19 00:53:05 -04:00
Daniel Hahler
152c9195ae Check &diff first in fugitive_diff autocmds
This avoids calling `s:diff_window_count` in the common (non-diff) case.
2014-03-13 15:48:20 -04:00
Tim Pope
7c40a18bfd Fix version regex 2014-03-13 15:48:20 -04:00
Tim Pope
f395f3cbea Improve heuristics for status section detection
Closes #440.
2014-03-05 18:01:38 -05:00
Emily Strickland
0cb30541ec Look for $GIT_DIR and $GIT_WORK_TREE
There are rare situations where a user has manually specified what they
wish to use as their work-tree directory, and even rarer situations
where the user wishes the Git directory to be customized. In the case
the user has set these using environment variables, vim-fugitive takes
advantage of these settings in order to set up.

Note that git-config(1) allows setting the work-tree and Git dir in
a number of ways (see the core.worktree) setting. This change only
respects the environment variable method, not the config file method.
2014-03-05 15:01:47 -05:00
Quinn Strahl
190fe2a4cf Store more than just dir in s:temp_files
- Also store 'args', the git arguments used to generate the temp file
2014-03-05 14:17:47 -05:00
Jason A. Ribeiro
8f0b8edfbd Respect GIT_CEILING_DIRECTORIES 2014-01-21 19:35:31 -05:00
Tim Pope
546a6bf219 Focus diff window on :Gdiff
References #36.
2013-12-30 10:45:54 -05:00
Tim Pope
1b0ddad697 Reopen diff folds when diff ends
References #36.
2013-12-30 10:39:08 -05:00
Quinn Strahl
07c078c1be Add & modify autocmd events FugitiveBoot & Fugitive
- Change old `Fugitive` to `FugitiveBoot`

- Put `Fugitive` at the end of fugitive#detect
2013-12-22 10:05:08 -05:00
Lech Lorens
6b338bdbcf Fix slowness when searching for networked git repos under Cygwin.
The algorithm in fugitive#extract_git_dir() is to move upwards in the
file system hierarchy until a sub-directory called .git is found. When
accessing a file on a network share from a Cygwin Vim and the file is not
within a git repo, this eventually causes a check for the existence of
//serverName/.git and //.git. Such checks are extremely slow so let's
avoid them.
2013-12-17 09:09:32 -05:00
Tim Pope
34e2d2538a Work around new status style in 1.8.5
Closes #393.
2013-10-24 00:16:15 -04:00
Tim Pope
dc250fcc8d Add ability to query current Git version 2013-10-24 00:15:40 -04:00
Tom McDonald
050b22e531 Fix unmatched parens in :Gmove 2013-10-22 13:21:15 -04:00
Mikkel Høgh
ea18a6a89b Don't set global foldlevel
Without this change, Fugitive will routinely overwrite the global foldlevel. It shouldn't.
2013-10-21 18:10:28 -04:00
Tim Pope
61fac2f738 Fix write to index with msysgit bash
Closes #388.
2013-10-09 14:13:45 -04:00