428 Commits

Author SHA1 Message Date
Tim Pope
f61beed747 Add packed-ref handling 2015-12-01 04:04:55 -05:00
Tim Pope
d854197c03 Open release page for tags on GitHub 2015-12-01 04:04:55 -05:00
Tim Pope
d8ce8d1d03 Document transition to rhubarb.vim 2015-11-30 22:25:50 -05:00
Tim Pope
23faeadc7c Revert "Show all untracked files in :Gstatus window"
This reverts commit 21b6dd7aee.

Closes https://github.com/tpope/vim-fugitive/issues/726
2015-11-30 19:38:48 -05:00
Andy Russell
1ecd12d523 Add support for fish shell syntax
Closes #626.
2015-11-06 15:54:34 -05:00
Jerome Reybert
f8aa87a4b5 Fix when $GIT_DIR is set and is not an absolute path 2015-11-03 09:52:22 -05:00
Jacob Niehus
dba8a0705d Fix diff sometimes opening in preview window
If the previous window no longer exists when Gedit is called, the
attempt to change windows with 'wincmd p' fails and 'wincmd w' should be
used instead.
2015-10-16 23:48:38 -04:00
Tim Pope
8cf3d94a3a Support gf in git filetypes
Closes https://github.com/tpope/vim-fugitive/issues/697
2015-10-07 00:21:49 -04:00
Tim Pope
28de2a1ddd Enable jumping on @@ hunk header 2015-10-07 00:21:49 -04:00
Tim Pope
01cda4d443 :Gdiff! keeps window focus 2015-10-07 00:21:35 -04:00
Tim Pope
b5188a1b4f Accept +cmd with :Gdiff 2015-10-07 00:05:07 -04:00
Tim Pope
8e63140181 Resplit when :Gstatus is final window 2015-10-07 00:05:07 -04:00
Tim Pope
cec56ef5ff Extract current file logic from s:GF 2015-10-06 21:45:40 -04:00
Tim Pope
1e755064e9 Better error on :Gwrite failure
References https://github.com/tpope/vim-fugitive/issues/696
2015-10-06 20:33:41 -04:00
Daniel Hahler
0b43b51d77 Expand % instead of <amatch> in the Buf* autocommands
This is relevant in case a previous BufReadPost autocmd changes the file
name using `:file` - fugitive should use the new/current name then.
2015-10-02 19:40:37 -04:00
Daniel Hahler
5dcf8a0175 ReplaceCmd: redirect stderr to tmp file / buffer
The option `status.showUntrackedFiles=all` used with `git status` for
`:Gstatus` might cause an error, which then causes fugitive to display an
empty status window / index file.

Redirecting the stderr output is useful in this case.

The generated command was:

    git --git-dir=/home/user/.dotfiles/.git -c 'status.displayCommentPrefix=true' -c 'color.status=false' -c 'status.short=false' -c 'status.showUntrackedFiles=all' status

The error from git is related to submodules being moved to another
subdirectory, where the relative "gitdir" now does not exist anymore:

    fatal: Not a git repository: vim/bundle.old.nobackup/CLEAN/colorscheme-base16/../../../.git/modules/vim/bundle/colorscheme-base16

While that's a Git / user error after all, fugitive should be more
helpful in that case by displaying the error.

It uses the 'shellpipe' setting to detect if '2>&1' is supported (Ref:
https://github.com/tpope/vim-fugitive/pull/661#issuecomment-120438667).

Closes #661.
2015-10-02 19:39:07 -04:00
Daniel Hahler
2509641eac Add "stash" and stash refs in repo.superglob
This looks for `refs/stash` and calls `git stash list` to get all of
them in case it exists.
2015-10-02 19:27:35 -04:00
Tim Pope
073f3a37b9 Short circuit when jumping too far in blame history
References https://github.com/tpope/vim-fugitive/issues/607
2015-09-30 18:49:56 -04:00
David Elentok
b7b23001de Allow using the "%" variable in git commands
Closes https://github.com/tpope/vim-fugitive/issues/686

For example, when running:

  :Git add %

neovim throws the following exception:

  E499: Empty file name for '%' or '#',
  only works with ":p:h": terminal git add %

It is a result of the tabnew command, it creates a new blank tab where
"%" is empty.

This commit changes "tabnew" to "tabedit %" so you're still working on
the same file.

Once the command is done running the tab closes.
2015-09-10 15:32:35 -04:00
Patrick Davey
b319b69453 Add the "L" prefix which github requires for highlighting ranges now
Fixes https://github.com/tpope/vim-fugitive/issues/669
2015-08-02 15:26:14 -04:00
Pieter-Jan Van de Maele
03cc95cc19 Support for Ggrep when only %f is available 2015-07-20 15:06:06 -04:00
Tim Pope
7c4a906147 Support Vim without 'wildignorecase'
Closes #659.
2015-07-01 10:55:35 -04:00
Tim Pope
b5b2548a87 Support older Vim without 'fileignorecase' 2015-06-30 20:39:54 -04:00
Tim Pope
ca727b07f1 Better support for case insensitive file systems
Closes #451.
2015-06-30 17:43:16 -04:00
Tim Pope
0fbbe0b3a4 Open :Gcommit tab before current
Pretty ridiculous, but this seems to be the only way to return to the
right tab after closing the commit message.
2015-06-29 17:52:39 -04:00
Tim Pope
1c844375fa Add support for flagship.vim 2015-06-14 20:06:38 -04:00
Daniel Hahler
e065e4f841 (Re)store the current window in s:diffoff_all
This is required to make Vim execute the "Enter" autocommands when
closing the fugitive window.

Fixes: https://github.com/tpope/vim-fugitive/issues/421
2015-05-31 12:14:23 -04:00
Eli Young
21b6dd7aee Show all untracked files in :Gstatus window
Previously, if there were untracked files inside an untracked folder,
:Gstatus would only show the new folder. Attempting to run a diff on the
folder would pass the directory name, which would result in Vim opening
a directory listing. This makes :Gstatus list all untracked files, even
if they're inside untracked folders. This requires Git >=1.4, and will
silently fall back to the old behavior on earlier versions.

Closes #605.
2015-05-22 17:50:42 -04:00
Tim Pope
935a2cccd3 Don't close window after :Gremove
This is nothing more than a change in personal preference on my part.
It's particularly annoying when :Gstatus or the quickfix window is the
only other window open.
2015-05-19 12:27:22 -04:00
Tim Pope
c2908b174d Support older Git in :Gpull
Closes #645.
2015-05-19 11:15:30 -04:00
Diego Vera
b0e38f08dc Make Ggrep to work properly on Mac
- Color were causing to appear strange characters in the result.
- These characters made impossible to navigate the results
- The solution was to disable colors while executing git grep
2015-05-16 10:12:41 -04:00
Ole Reifschneider
4cc201cbe3 Use the neovim terminal emulator for :Git 2015-03-31 13:40:01 -04:00
Tim Pope
baa05dcfda Pass correct files to git reset --patch 2015-03-29 16:29:18 -04:00
Fedor Gusev
0095769029 Provide g:fugitive_no_maps to disable key maps
Add variable g:fugitive_no_maps. If set y<C-G> and <C-R><C-G> are not
mapped.

Resolves tpope/vim-fugitive#394
2015-02-20 15:50:02 -05:00
Eli Young
e8b94098bb Support browsing with new netrw.vim
The previous fix for #594 didn't handle the case in which the net netrw
was installed on older versions of Vim.
2015-02-20 15:49:36 -05:00
Tim Pope
eb8eb1850a Support for browsing with recent Vim
Closes #594.
2015-02-08 22:31:37 -05:00
Daniel Hahler
933f6a1e1d s:Diff: use winnr with <C-W>w instead of <C-W>p
This is more reliable and fixes an issue where the syntastic location
list of the original file would be focused after `:Gdiff`.

Ref: c99f0ff06b (commitcomment-9434351)
2015-01-25 19:23:45 -05:00
Tim Pope
34719016ec fugitive.vim 2.2
* Provide :Gpush, :Gfetch, :Gmerge, and Gpull.
* Use -L to handle :Glog range.
* :Gcommit -v opens message in new tab.
* API for custom :Gbrowse handlers.
* Invoke :Browse if available to open URL.
* Colorize hashes in :Gblame buffer.
* Set cursorbind and nobuflisted in :Gblame buffers.
* :Gblame in blame buffer toggles buffer.
2015-01-20 01:37:22 -05:00
Daniel Hahler
2c8461db08 Use <nomodeline> with Fugitive autocmds, and un-silent them
Closes #580.
2014-11-21 03:25:20 -05:00
John Whitley
d3b98d9886 Make configured_tree a caching global function
This implements the changes suggested in tpope/fugitive#415.
s:repo_configured_tree is now a global, s:configured_tree() that caches
the bidirectional relation between the worktree and the git_dir.
extract_git_dir() now uses that relation to check whether the
directories it scans are valid worktrees known by the repo at $GIT_DIR.
2014-11-06 13:49:30 -05:00
Tim Pope
5699f4613c Fix instaweb support
Closes #571.
2014-11-06 13:47:26 -05:00
Tim Pope
0374322ba5 Fix :Glog
Closes #545.
2014-09-02 12:05:34 -04:00
Tim Pope
90ee6fb5d2 Pass line1 and line2 as 0 for :Gbrowse without range
Closes #530.
2014-07-27 12:14:42 -04:00
Tim Pope
04fe4bfcd9 Set nobuflisted in blame buffers 2014-07-23 17:55:15 -04:00
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
d376506177 Try including helptags instructions in README 2014-07-17 19:57:09 -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
989fb15b8c Less mofo 2014-06-24 16:36:07 -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
Daniel Harding
46ca7374f0 Fix Gblame documentation
Remove an incorrect sentence about what happens when enter is pressed in
the blame buffer.
2014-05-09 14:49:23 -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
Tim Pope
0765cbe466 Place extra emphasis on a clean history 2014-03-05 15:17:49 -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
Tim Brooks
124550cfee Change if block to correct ending 2013-07-22 01:18:16 -04:00
Mark A. Hillebrand
00b0916ae2 Fix :Gmove command on Windows 2013-06-23 13:24:04 -04:00
Tim Pope
f096152a48 Support angle quotes in git status
Closes #228.
2013-06-05 21:35:15 -04:00
Tim Pope
3b5f715262 Fix :Gstatus dp with external diff enabled
Closes #341.
2013-05-17 23:58:10 -04:00
Tim Pope
54ead5abcb Update :Gblame explanation in README 2013-04-23 19:47:40 -04:00
Tim Pope
25bbb3c5f5 Extract contribution guidelines 2013-04-23 19:47:40 -04:00
Tim Pope
5f7a8a9935 Change heading style 2013-04-23 19:47:40 -04:00
Tim Pope
5c18b1a044 Press - on first line of :Gstatus to edit .git
This is a bit silly, but provides a quick way to start navigating the
repository.  Press it a second time and you're in the work tree root.
2013-03-29 22:58:23 -04:00
Tim Pope
4c7e649efb Encapsulate restore options for diff
This should make it easier to experiment with solutions for issues such
as #257.
2013-04-19 15:53:02 -04:00
Tim Pope
618d884562 Revert "Add foldenable to fugitive_diff_restore"
This reverts commit cbb7c3e890.
2013-04-19 15:10:51 -04:00
Will Gray
cbb7c3e890 Add foldenable to fugitive_diff_restore 2013-04-19 15:02:40 -04:00
Tim Pope
d4c615c427 Loosen regex to compensate for iskeyword
Closes #332.
2013-04-18 15:19:17 -04:00
Tim Pope
f6d93b8788 Don't dispatch autocommands when calling git commit
Closes #295.
2013-03-12 02:32:13 -04:00
Tim Pope
09cbdded83 Add . to prepopulate command line with revision 2013-03-12 02:26:09 -04:00
Tim Pope
06fafb1324 Change cp to cP
This has the incredibly self-serving purpose of paving the way for
evaluating Clojure in historical buffers.
2013-03-12 02:25:12 -04:00
Tim Pope
a917e998c7 Include tree filename in <C-R><C-G> 2013-03-12 02:15:40 -04:00
Tim Pope
2ae214a156 Seek to blob name in tree with - 2013-03-12 02:01:49 -04:00
Tim Pope
0103538d7a Expose detect interface
Closes #311.
2013-02-23 12:24:24 -05:00
Alejandro Exojo
a27b899a36 Add foldlevel to fugitive_diff_restore 2013-02-15 10:31:54 +01:00
Tim Pope
6462bdb4b9 Work around archaic encodings
Closes #304.
2013-02-10 13:01:22 -05:00
Tim Pope
1da788a1b0 Unify escaping rules for :Gedit with :edit
In particular, this makes `:Gedit file\ with\ spaces` work, and updates
the tab complete to match.

Closes #305.
2013-02-10 12:57:37 -05:00
Tim Pope
bbf9e51eb2 Fix :Git! on Windows.
Closes #301, #302.
2013-02-08 19:35:29 -05:00
Tim Pope
cf3fe781dd Switch :Gblame <CR> to open commit
This is more useful than the previous behavior of reblaming at that
commit.  Said behavior is still available on -.
2013-01-30 16:00:41 -05:00
Tim Pope
1bce4328e4 Fix setting of foldmethod in :Gstatus
Closes #300.
2013-01-30 13:13:28 -05:00
Tim Pope
1601ffc1e0 Don't clobber foldmethod in :Gedit :
Being a window local option, this can be pretty annoying.
2013-01-13 16:01:17 -05:00
Tim Pope
b9525df190 Support WIDE COLON in :Gstatus in some locales
Closes #228.
2013-01-09 23:15:42 -05:00
Tim Pope
582eb0d3c9 Fix supposed "Press ENTER" prompt
Closes #189, #190.
2012-12-31 22:32:53 -05:00
Tim Pope
d1406ae23a Revert "s:Detect: only add readable files to &tags and doc"
This reverts commit 31dead6d80.
Generating the tags file after already loading the buffer burns me over
and over and over again, and I'm not convinced there was a problem to
begin with.
2012-12-16 20:23:12 -05:00
Tim Pope
d63a475fcb Fix duplicate Signed-off-by lines
Closes #284.
2012-12-12 22:40:04 -05:00
Tim Pope
2723a1116f Return '' from buffer.path() if outside work tree
In reference to #278.
2012-12-08 16:53:55 -05:00
Tim Pope
7df3a6894a Send :help :Gw to the right place 2012-12-08 16:45:31 -05:00
Tim Pope
6f380fa8c6 Fix error when g:fugitive_github_domains is unset
Closes #274.
2012-11-20 17:57:37 -05:00
Tim Pope
f64ba46509 Allow :Gbrowse on HTTP GitHub FI
Closes #272.
2012-11-18 22:43:04 -05:00
Tim Pope
003f38c6a4 Escape # in :Glog
Closes #265.
2012-11-04 19:32:13 -05:00
Tim Pope
3f703b6e03 Replace :Gstatus cv with cva and cvc
My rebuttal to #263.
2012-10-22 17:02:30 -04:00
Tim Pope
9afeebf32e Provide failsafe for foldtext filename
Closes #216.
2012-10-21 23:21:12 -04:00
Tim Pope
09743e76a0 Correct foldtext when diff.mnemonic is set 2012-10-21 22:54:59 -04:00
Tim Pope
14958f37e3 Mention OS X browser in FAQ
Closes #255.
2012-10-18 13:34:33 -04:00
Tim Pope
05763df0ed Fix :Gbrowse when argument starts with a digit 2012-10-16 00:18:41 -04:00
Tim Pope
f43393dd9a Conceal file names and line numbers in :Gblame 2012-10-09 18:36:54 -04:00
Tim Pope
daccfb508f Update :Gblame supported options 2012-10-09 18:36:54 -04:00
Tim Pope
cdb7bd9841 Don't show diff in keywordprg output in GUI
It's not very readable without syntax highlighting or pagination, so
leave it off.
2012-10-09 18:36:54 -04:00
Tim Pope
554909ed4b Allow a count to blame resizers
Pass a count to A or C to add that many additional columns, or to D to
remove that many additional columns.
2012-10-09 16:04:41 -04:00
Tim Pope
3463b780df Fix A in :Gblame with unix timestamp 2012-10-09 15:25:40 -04:00
Daniel Hahler
31dead6d80 s:Detect: only add readable files to &tags and doc
Fixes issue #104.
2012-10-02 10:09:53 -04:00
Trent Ogren
cff78c3ab4 Pick sane git_dir for :Gedit from :Gstatus window
When using a :Gedit command from the :Gstatus window the git_dir was
being based on the window that was switched into in order to edit the
file. So if Fugitive switched into a window with a file from a different
Git repo (or a file with no Git repo) the :Gedit command could fail or
edit the wrong file.

Instead base the git_dir on the window from which the :Gedit command
originated.
2012-09-21 12:39:35 -04:00
Tim Pope
41383131b8 Support ctrlp.vim in historical buffers 2012-09-08 11:41:32 -04:00
Tim Pope
615f6608f1 Allow <C-p> pass through to ctrlp.vim in :Gstatus
This only works on the first line.  Any more than that, and we'll have
to give up on the whole <C-p> map entirely (which is not off the table).
2012-09-07 01:15:48 -04:00
Tim Pope
8d019de97c Accept a count with :Gstatus <C-N>/<C-P> 2012-09-07 01:14:13 -04:00
Taylor Hedberg
b5725c1eec Return to correct window when closing Gblame window
Vim does not guarantee persistent window numbers. Instead, windows are
numbered according to their position on the screen, with the topmost,
leftmost window always having number 1, and the bottommost, rightmost
window always having a number equal to the total number of windows
currently visible. Crucially, this means that, when a window is closed,
windows which come "after" it in the positional order will be
renumbered.

When fugitive's Gblame window is closed, e.g. by pressing `q`, it
attempts to return focus to the window of the blamed buffer. Previously,
the number of the window to return to was computed before closing the
Gblame window, then the Gblame window was closed, then the blamed
buffer's window was focused. However, since windows were often
renumbered as soon as the Gblame window was closed, this would
frequently cause focus to jump to the window *after* the blamed buffer's
window, rather than the intended behavior.

This corrects the issue by jumping to the proper return window prior to
deleting the Gblame buffer, ensuring that the computed window number is
in fact correct at the moment when the focus change occurs.
2012-08-29 13:38:33 -04:00
Tim Pope
381b275bc9 Fix <C-W><C-O> in diff below :Gstatus
I'll admit I can't remember the original purpose of this code.

Closes #66.
2012-08-28 13:25:13 -04:00
Tim Pope
f5b50f822b Fix :Gblame width with custom date format
Partially addresses #242.
2012-08-21 20:47:19 -04:00
Tim Pope
a0c71a6d4c Fix :Gstatus dd on unmerged path
Closes #240.
2012-08-15 11:22:40 -04:00
Tim Pope
0abe1fb122 Support advice.statusHints = false
Closes #230.
2012-08-01 16:00:15 -04:00
Tim Pope
a90cc48c7a Fix creation of files named index
Closes #231.
2012-08-01 10:35:52 -04:00
Tim Pope
b0c74e2289 Support localized git status
Closes #228.
2012-07-28 11:54:52 -04:00
Tim Pope
745ccf5066 Centralize filename extraction in :Gstatus
This encapsulates some of the logic that will need to be updated to
solve #228.
2012-07-16 18:10:27 -04:00
Tim Pope
d1971558b5 Fix - on :Gstatus headers 2012-07-16 17:42:00 -04:00
Tim Pope
8ba04c2476 Encapsulate :Gstatus section determination logic 2012-07-16 11:16:35 -04:00
Tim Pope
ca6d4ca4d1 Don't activate maps without b:git_dir
Closes #227.
2012-07-15 13:33:36 -04:00
Tim Pope
585ca691a3 Revert "Follow symlinks"
This reverts commit 57af9b98cf, which was
pushed by accident.
2012-07-15 13:03:09 -04:00
Tim Pope
5298448e88 Fix :Glog on Windows
Closes #199.
2012-07-11 07:26:42 -04:00
Tim Pope
9ebff45853 Re-enable editing files named index
This is a crude hack.  Watch for edge cases.

Closes #205.
2012-07-08 01:11:12 -04:00
Tim Pope
8fd12ef14f Show diff from :Gstatus interally
When pressing enter on a header in :Gstatus, use :Git! rather than :Git
to show the diff.

Closes #208.
2012-07-08 01:06:33 -04:00
Nicolas Viennot and Sid Nair
57af9b98cf Follow symlinks
Previously, symlinks were not resolved. Thus, symlinks outside a git
directory would have no git dir even if they linked to a file in a git
directory.
2012-07-07 17:30:25 -04:00
Tim Pope
3b278277e0 Add maps for resizing blame window 2012-06-22 19:44:32 -04:00
Tim Pope
49c6be334c Override 'shellslash' for external Windows command
With 'shellslash' set, tempname() returns a filename with forward
slashes, which trips up the type command if we don't translate to
backslashes first.

Fixes half of #212.
2012-06-07 22:05:06 -04:00
Tim Pope
1eb4a9f7e3 Fix erroneous check for //objects
This was particularly detrimental on Windows, where it caused a slow
network lookup.

Closes #210.
2012-06-04 15:16:48 -04:00
Tim Pope
6515bd43ac Support relative core.worktree
This is based on Chen Mulong's implementation in #204, but uses the same
relative path check as a8d450fcfe, for
better Windows support.
2012-05-17 21:42:06 -04:00
Tim Pope
a8d450fcfe Support submodules on 1.7.10
In 1.7.10, the git-file switched from using an absolute to a relative
path.  Treat any path starting with "." as relative.  (A more robust
check for a relative path is more complicated than looking for a leading
slash because of Windows.)

Closes #201.
2012-05-15 21:50:13 -04:00
Tim Pope
476fbd0950 Leverage #head() in #statusline() 2012-05-07 11:41:25 -04:00
Georgi Valkov
43741b550d Add fugitive#head() and fugitive#repo().head()
fugitive#head() returns the name of the current branch. If the current
HEAD is detached, fugitive#head() will return the empty string, unless
the optional 'len' argument is given, in which case the hash of the
current HEAD will be truncated to 'len' characters.

This makes should make life easier for people who don't want to use the
default provided by fugitive#statusline()
2012-05-07 11:39:33 -04:00
Daisuke Suzuki
765c921e1f Fix Windows escaping on latest 7.3 patches 2012-05-03 18:30:24 -04:00
Tim Pope
5ceabc6e6a Fix commit editing on Windows
Closes #120.
2012-05-03 18:30:13 -04:00
Tim Pope
1b6c0cbfb6 Improve cmd.exe shell escaping 2012-04-21 10:14:44 -04:00
Jean Jordaan
60fdd95b95 Fix some typos 2012-04-16 21:57:49 -04:00
Tim Pope
15e7672672 Enable folding in :Gstatus 2012-04-16 21:56:49 -04:00
Tim Pope
4fe6e46a0a Fix detection of netrw buffers
How long has this been broken?
2012-04-11 16:41:43 -04:00
Tim Pope
9bfb7857ec Formatting fix 2012-04-10 22:57:56 -04:00
Adam George
75a27559a3 Add an S mapping for vertical splits from :Gstatus 2012-04-08 17:16:38 -04:00
Tim Pope
dfba6a17f6 Provide custom 'foldtext'
autocmd FileType git,gitcommit setlocal foldmethod=syntax
2012-04-08 11:00:26 -04:00
guns
859f7eaa70 Fix naked function call 2012-04-07 18:25:49 -04:00
Tim Pope
b72bb7b289 Fix - in commit 2012-04-07 16:23:49 -04:00
Tim Pope
9619055cfd Map - to go up a directory 2012-04-07 16:16:41 -04:00
Tim Pope
48daf7ae72 Include leading / in buffer().rev()
Slowly pave the way for relative paths.
2012-04-07 15:42:09 -04:00
Tim Pope
b18bb05b91 Further slim down modeline 2012-04-06 10:54:00 -04:00
Richard Russon (flatcap)
96db5642a1 vim modeline confuses slow programmers
Adding 'expandtab' (et) to the modeline prevents whitespace nightmares.
2012-04-06 10:53:34 -04:00
Richard Russon (flatcap)
693d32cdd4 [BUG] wildignore breaks Gwrite
When the file you're editing matches the vim variable
wildignore Gwrite fails.
2012-04-05 23:15:08 -04:00
Tim Pope
b978d9f0be :Glgrep and :Gllog 2012-04-05 12:25:24 -04:00
Tim Pope
49e6c2b676 Clean up stray buffer().name() 2012-04-03 07:33:18 -04:00
Tim Pope
39012290b8 Fix incorrect usage of readfile() 2012-04-03 06:52:48 -04:00
Martin Grenfell
89e771ea96 make fugitive commands available in nerdtree bufs
Previously s:Detect() wasnt getting called for nerdtree buffers. I have
added two autocmd events to nerdtree - NERDTreeInit and
NERDTreeNewRoot. These are called when a tree is created, and when the
user changes the root.

Catch these events and call s:Detect() with the tree root path.
2012-04-03 04:12:13 -04:00
Tim Pope
51de95ddee I hate 'autochdir'
Closes #180.
2012-04-01 22:06:13 -04:00
Tim Pope
e8e497eb83 Open fold when jumping to commit from blame 2012-04-01 13:17:13 -04:00
Richard Russon (flatcap)
e142a27ab8 [BUG] wildignore breaks Gdiff
When the file you're editing matches the vim variable wildignore
Gdiff fails.  This line wasn't being triggered:

autocmd BufReadCmd  fugitive://**//[0-9a-f][0-9a-f]* exe s:BufReadObject()
2012-04-01 10:39:02 -04:00
Tim Pope
3c641a7ef5 Use - not <CR> for reblame
The plan is to ultimately reclaim <CR> for closing the blame, then
jumping to the commit.
2012-03-28 20:35:47 -04:00
Tim Pope
c6931a519f Fix :foldopen error 2012-03-28 20:31:40 -04:00
Tim Pope
41ea90cddf Support GitHub FI 2012-03-28 20:27:26 -04:00
Tim Pope
4f7af188fe Fix repo().translate with symlinked git-dir
Closes #178.
2012-03-27 13:43:03 -04:00
Tim Pope
24e9b492fe Fix git-dir detection on Windows
Closes #176.
2012-03-25 22:19:19 -04:00
Tim Pope
bc3ffa6b44 Guard against blank .git file
Let's see you break it now.
2012-03-20 08:16:45 -04:00
Tim Pope
8ecc9b9e11 Guard against invalid symlinks in detection
Closes #171.
2012-03-20 08:13:31 -04:00
Tim Pope
165923ebaf Kill old plugin conflict guard 2012-03-18 23:01:26 -04:00
Tim Pope
19d9875186 Refactor and expose detection helpers 2012-03-18 22:53:19 -04:00
Tim Pope
dfb10448e2 Cache configured worktree
Note that the repo object holding the cached value is short lived.
2012-03-18 22:22:28 -04:00
Tim Pope
c5cd0c96f7 Encapsulate logic for extracting tree from config 2012-03-18 22:12:25 -04:00
Tim Pope
6fc37993fe Fix inadvertent failures to use self 2012-03-18 22:08:58 -04:00
Tim Pope
23d08c0945 Don't assume COMMIT_EDITMSG is in a .git directory 2012-03-18 21:50:40 -04:00
Tim Pope
3c12ec8053 Support symlinked .git if core.worktree is set
Closes #155.
2012-03-18 20:57:36 -04:00
Tim Pope
0b1625a798 Support all git index locations 2012-03-16 22:27:45 -04:00
guns
a6982fe7f5 Support more git index locations
Matches:

    .git/index
    .git/index.lock
    .git/modules/submodule/index
    .git/modules/submodule/index.lock
2012-03-16 22:21:25 -04:00
Tim Pope
0949a2e639 Support .git-file repositories
This supports the new submodule structure and closes #139.
2012-03-14 22:02:20 -04:00
Tim Pope
85639a20fb Support bare repositories that don't end in .git
Closes #117 and supports #139.
2012-03-14 20:16:49 -04:00
Tim Pope
c67458d189 Decamelize s:ExtractGitDir
Rule of thumb: reserve camel case for imperative functions.
2012-03-14 20:04:44 -04:00
Tim Pope
5b1467af75 Preserve alternate file in :Gmove
Second time's the charm.  I've decided moving is sufficiently different
from copying to justify this.
2012-03-13 20:58:59 -04:00
Tim Pope
168de6fbc5 Don't wipe status buffer
This was to address #105, but the annoyance factor is too high to
justify keeping it.
2012-03-12 18:36:16 -04:00
Tim Pope
14735b470a Use y<C-G> to yank the current object's path
In response to #165.
2012-03-10 17:40:21 -05:00
Tim Pope
22c8ffa2ba Hack around broken :Gcommit with symlinked .git 2012-03-08 11:40:23 -05:00
Tim Pope
da2aebe3e6 Use ==# 2012-03-05 07:32:01 -05:00
Tim Pope
5bc125d1d5 Try harder not to choke on broken modeline
Partially addresses #162.
2012-03-05 07:27:35 -05:00
Tim Pope
5be0c6850e Don't abort s:ReplaceCmd on modeline error
Partially addresses #162.
2012-03-05 07:11:13 -05:00
Tim Pope
f0cb627a8e Really turn off modelines in commits and :Gstatus
Partially addresses #162.
2012-03-05 06:58:00 -05:00
Tim Pope
5225697d9c Revert "Use --work-tree to fix :cd side effects in :Gcommit"
This reverts commit 903ad4d704, which
broke :Gcommit when invoked from a subdirectory of the repository.
2012-03-03 10:08:00 -05:00
Tim Pope
903ad4d704 Use --work-tree to fix :cd side effects in :Gcommit
Closes #155
2012-03-03 03:30:27 -05:00
Tim Pope
dcd79f2adb Map cv to :Gcommit -v 2012-03-01 03:34:30 -05:00
Tim Pope
701304c164 Work around .git in 'wildignore'
Closes #119.
2012-03-01 02:47:13 -05:00
Tim Pope
03e138c349 Attempt to address more Windows slowness (#150) 2012-02-08 13:03:10 -05:00
Taylor Hedberg
64716b9622 :Gblame: Retain original alternate buffer 2012-01-24 12:07:56 -05:00
sgur
b4b75ef682 Work around slow \\ Windows network path 2011-12-09 23:06:04 -05:00
Daniel Hahler
fc0c98f5c0 Check for +cursorbind feature before using it
`+cursorbind` is not available with Vim on RHEL 6.1 for example.
2011-12-06 12:46:07 -05:00
Tim Pope
c72a689f7f Restore 'cursorbind' after diff
Closes #122.
2011-12-03 01:10:08 -05:00
Tim Pope
d95e6c61b5 Disable swapfile in :Gstatus 2011-11-27 12:56:44 -05:00
Tim Pope
1b7e4070f5 Fix bare repository support
Closes #117.
2011-10-08 16:09:00 -04:00
Tim Pope
ceb18eeceb Fix issue with symlinked tmp dir 2011-10-07 01:33:51 -04:00
Tim Pope
37295383ff Provide fugitive#repo() 2011-10-04 20:25:32 -04:00
Tim Pope
98b7334209 Close old blame windows before new blame 2011-10-04 03:13:46 -04:00
Tim Pope
a1bdea305b Fix restore from blame
Options affected by blame are now restored when the blame window is
closed while not focused.
2011-10-04 03:10:04 -04:00
Tim Pope
be42215003 Enter on a +/- diff line jumps to that line
This is useful particularly in conjunction with :Gblame.  Press `i` on a
line in a blame to open the commit.  If the diff reveals a new point of
interest, press enter on that line to jump to it in the history, then
:Gblame again.
2011-10-01 17:31:57 -04:00
Tim Pope
8ce49ebea0 Jump from blame to commit focuses relevant diff 2011-10-01 17:31:57 -04:00
Tim Pope
6cf850dd00 Show :Gblame maps in tabular form 2011-10-01 17:31:57 -04:00
Tim Pope
e9e48006dd Fix :Gblame scrollbind with folds 2011-10-01 17:31:57 -04:00
Tim Pope
c4baefff69 Press i in blame to close then jump to commit 2011-10-01 04:23:27 -04:00
Tim Pope
59ce7a9e19 Restore blamed window on gq in blame 2011-10-01 04:13:09 -04:00
Tim Pope
a23dcec3d2 Return to blamed buffer on q in blame 2011-10-01 04:02:29 -04:00
Tim Pope
9169e8c36e Remove space from q map 2011-10-01 03:54:58 -04:00
Tim Pope
88ae099102 Syntax fix 2011-10-01 02:31:53 -04:00
Tim Pope
30038b82a4 Fix jump to line on reblame
Discovered when investigating #112.
2011-10-01 02:26:26 -04:00
Tim Pope
1eeeb41f3f Work around git.vim's broken b:git_dir 2011-09-24 18:31:23 -04:00
Tim Pope
201bdd0eff Fix completion of :Gedit! 2011-09-12 17:02:45 -04:00
Tim Pope
c212714cba :Gwrite in a patch to apply it
Closes #106.
2011-09-08 17:13:00 -04:00
Tim Pope
8638d7b059 Clever window size on :Gcommit from :Gstatus 2011-09-05 21:17:19 -04:00
Tim Pope
1ecd40d002 Revert "Partial workaround for symlinked .git"
This reverts commit ea3b4a7315.
b4099e568a handles this more cleanly.
2011-09-02 15:19:06 -04:00
Tim Pope
b4099e568a Wipe :Gstatus on closure
References #105
2011-09-02 14:59:30 -04:00
Tim Pope
ea3b4a7315 Partial workaround for symlinked .git
Closes #105
2011-09-02 14:56:49 -04:00
Tim Pope
1de030e2d0 Treat . remote as origin in :Gbrowse 2011-08-29 20:56:21 -04:00
Tim Pope
ef4bcdb44f Add cc alias for C in :Gstatus 2011-08-29 20:50:05 -04:00
Tim Pope
2bc72cde05 Clarify copyright 2011-08-29 20:49:59 -04:00
Tim Pope
8cd20303ca Escape ! in :Gblame filename 2011-08-25 20:24:01 -04:00
Tim Pope
11951a614c Identify new buffers as "file" 2011-08-25 20:23:47 -04:00
Tim Pope
9dfa357770 :Ge in blank buffer goes to status 2011-08-25 19:08:23 -04:00
Tim Pope
0a24e781b2 Allow exiting vim from q in sole buffer :Gstatus 2011-08-25 19:07:50 -04:00
Tim Pope
821f11176f Add ca and cA commit maps to :Gstatus 2011-08-25 15:45:00 -04:00
Tim Pope
15d2136f5f Kill relativenumber in blame buffer
Closes #102
2011-08-25 14:51:48 -04:00
Tim Pope
5f5c8da61f Fix several editing maps 2011-08-21 15:53:12 -04:00
Tim Pope
7a33e738fa Tab complete Git aliases 2011-08-21 13:55:04 -04:00
Tim Pope
a09263f9d0 Fix jump after dp on untracked file 2011-08-21 13:45:21 -04:00
Tim Pope
c2569c5de4 Support space and comma paths with tags 2011-08-19 21:15:15 -04:00
Tim Pope
e674a7e2f3 Map dp to show diff in :Gstatus
Closes #101
2011-08-19 18:21:58 -04:00
Tim Pope
b8b5272577 Use long options in :Gstatus help 2011-08-19 18:20:43 -04:00
Tim Pope
7005789427 Add :Git! et al. for loading output into a buffer 2011-08-19 15:01:56 -04:00
Tim Pope
dd52642d13 Document :Gstatus maps in tabular form 2011-08-19 15:01:56 -04:00
Tim Pope
2aae91c3ed Map R to reload :Gstatus 2011-08-19 14:30:40 -04:00
Tim Pope
0d3419ecc4 Always map q in status 2011-08-19 14:08:56 -04:00
Tim Pope
b3262c28d6 No preview window business for :Gread 2011-08-19 03:04:50 -04:00
Tim Pope
4a20d8802e Handle return to temp files more gracefully 2011-08-19 03:04:50 -04:00
Tim Pope
f21ebfb2ee Make <C-R><C-G> a noop on irrelevant :Gstatus line 2011-08-19 03:04:50 -04:00
Tim Pope
69711ec322 Fix typo 2011-08-19 03:04:50 -04:00
Tim Pope
8993abb9f1 Set bufhidden=delete in historical buffers 2011-08-15 23:17:42 -04:00
Tim Pope
6c0649ed9b Fix redraw issue after :Gbrowse 2011-08-12 17:50:58 -04:00
Tim Pope
7991e832a3 Prioritize our own tags 2011-08-11 11:03:18 -04:00
Tim Pope
8548a9c621 <C-R><C-G> in Gstatus recalls cursor line filename 2011-08-09 15:16:17 -04:00
Tim Pope
78b405fd52 Support core.autocrlf=false on Windows
Fixes #99.
2011-08-09 11:18:50 -04:00
Tim Pope
a0f5c0445e Restore options when turning off diff mode 2011-08-07 19:53:03 -04:00
Tim Pope
299a037564 Rename confusing w:fugitive_restore 2011-08-07 19:51:45 -04:00
Tim Pope
8e9fa7a807 Consolidate duplication in help and README 2011-08-07 18:53:59 -04:00
Tim Pope
23c7599ab3 Document mappings in :Gblame
Also document q in :Gstatus.
2011-08-07 00:09:53 -04:00
Tim Pope
c10d7cc5f8 Reference homepage not email 2011-08-06 16:55:57 -04:00
Tim Pope
dba7bad836 Add instructions for viewing help 2011-07-25 18:59:12 -04:00
Tim Pope
bca6ca0237 Use HTTPS for GitHub URLs in README 2011-07-25 17:42:07 -04:00
Tim Pope
faaf459388 Expand FAQ 2011-07-25 17:39:40 -04:00
Tim Pope
a452b5ee7e Add a note about compatibility bugs 2011-07-25 17:39:40 -04:00
Tim Pope
9104cceedc Add installation instructions 2011-07-25 17:39:40 -04:00
Tim Pope
100893dd33 Add license 2011-07-25 17:39:40 -04:00
Tim Pope
56630b88a7 Add contribution guidelines 2011-07-25 17:39:40 -04:00
Tim Pope
3f77ad8865 Tweak self-promotion wording 2011-07-25 17:39:40 -04:00
Tim Pope
4453370768 Fix trailing blank line when editing index files
I can't consistently reproduce this, but a binary write is the logical
thing to do in this case, and seems to work.
2011-06-13 22:38:13 -04:00
Tim Pope
a38f25f78b Close diffs when navigating from :Gstatus 2011-06-12 23:10:06 -04:00
Tim Pope
50e7887498 Link to vimcasts 2011-06-02 21:40:47 -04:00
Tim Pope
a86731afa9 Further self promotion 2011-06-02 21:40:47 -04:00
Tim Pope
2fb2d4e199 Move self-promotion to bottom of README 2011-06-02 21:40:47 -04:00
Tim Pope
35d6717d6a Work around "always" color option 2011-05-27 14:51:18 -04:00
Tim Pope
c872a54675 Fix :Gcommit % 2011-05-10 08:31:41 -04:00
Tim Pope
b089a2b7ce Fix :Gcommit on csh and Windows 2011-05-09 20:02:30 -04:00
Tim Pope
216c85afe0 Fix history browsing on csh and Windows 2011-05-09 13:31:19 -04:00
Tim Pope
b75a131805 Drop noautowrite rendered irrelevant by system() 2011-05-09 13:07:39 -04:00
Tim Pope
aaf5b34366 Fix garbling on :Gcommit when nothing is staged
Fixes #68.
2011-05-09 08:37:24 -04:00
Tim Pope
05000b1872 Fix garbage during :Gcommit with alternate screen
When running Vim in a terminal with an alternate screen buffer, :Gcommit
trashes the screen in a way that requires a redraw to fix.  Circumvent
this by using system() rather than `silent !`.  Fixes #68.
2011-05-09 01:27:15 -04:00
Tim Pope
f112f9b830 fugitive.vim 1.2 2011-04-28 23:36:12 -04:00
Tim Pope
0184570176 Revert "Preserve alternate file in :Gmove"
This reverts commit 68b3f3b3d6.  Since
:saveas changes the alternate file, :Gmove should too.
2011-04-28 21:23:47 -04:00
Tim Pope
5e25040a97 Support "(modified content, untracked content)" 2011-04-26 08:44:49 -04:00
Tim Pope
bb191c1939 Really work around Vim parser idiosyncrasy 2011-04-26 08:35:02 -04:00
Tim Pope
4a5f1df129 Fix closing of status window in :Gcommit 2011-04-25 15:17:19 -04:00
Tim Pope
081832380c Work around Vim parser idiosyncrasy 2011-04-25 15:14:55 -04:00
Tim Pope
b11669a2eb Perform automatic :diffupdate after conflict dp 2011-04-25 14:32:42 -04:00
Tim Pope
aebbbd335e Map dp in stage conflict to do the right thing 2011-04-25 11:50:19 -04:00
Tim Pope
3366704c8f Enable - on headings in :Gstatus 2011-04-23 22:15:28 -04:00
Tim Pope
a71120ca8f Cope with new "Changes not staged" heading 2011-04-23 22:06:30 -04:00
Tim Pope
68b3f3b3d6 Preserve alternate file in :Gmove 2011-04-22 13:06:27 -04:00
Tim Pope
3ad9b0d9fa Don't clobber alternate file when committing 2011-04-22 12:59:03 -04:00
Tim Pope
e047558bee Support :Gcommit on older Git versions 2011-04-19 18:24:33 -04:00
Daniel Hahler
4b69204679 Handle non-readable .git dirs.
This can happen when a normal user edits/views some files in /etc, which
is maintained using git/etckeeper, and /etc/.git is only readable by
root.
2011-04-18 03:27:28 -04:00
Tim Pope
3026076ab5 Simplify csh special cases 2011-04-04 23:15:19 -04:00
Alexander Kahn
762bfa7979 Use https for GitHub URL 2011-03-08 05:23:45 +08:00
Tim Pope
57831bb5c1 Add a FAQ 2011-03-06 17:51:05 -05:00
Tim Pope
2e4c9236d6 Implement :Gwq 2011-02-27 14:35:08 -05:00
Tim Pope
3933bfdc57 Prefer ds to dh for horizontal diff map 2011-02-27 13:15:10 -05:00
Tim Pope
fe7f04ebdf Document :Gsdiff and :Gvdiff 2011-02-27 13:15:10 -05:00
Tim Pope
2c0574594d Cease supporting :Gread! 2011-02-27 13:15:09 -05:00
Tim Pope
389efdcf14 Open current branch commits on :Gbrowse HEAD 2011-02-26 20:55:04 -05:00
Tim Pope
1e6d7c8a40 Fix use of throw 2011-02-26 20:12:34 -05:00
Tim Pope
d5f8446158 Let :Gdiff :/ diff against the work tree version 2011-02-26 18:55:47 -05:00
Tim Pope
383b2a43df Handle arbitrary :Gbrowse revision 2011-02-26 17:59:15 -05:00
Tim Pope
95311ab2d9 Ignore rev-parse warnings 2011-02-26 13:45:24 -05:00
Tim Pope
ca4e18c81f Allow -/ and :/ to refer to current work tree file 2011-02-26 12:39:19 -05:00
Tim Pope
1eeff6c349 :Gbrowse takes remote tracking branch into account 2011-02-24 16:31:50 -05:00
Tim Pope
9e05d7ee03 Allow :Gbrowse @git://... 2011-02-24 15:57:00 -05:00
Daniel Hahler
55fac5dd74 Fix typo: "flie" => "file" 2011-02-23 00:14:18 +08:00
Tim Pope
d6615891c2 Provide :Gbrowse to open code in web browser 2011-02-21 17:54:23 -05:00
Tim Pope
af9d44f91b Add filetype specific tags 2011-02-07 15:04:28 -05:00
Michael Geddes
156123520b Handle win32 change in behaviour of fnamemodify in 7.3
Signed-off-by: Michael Geddes <vimmer@frog.wheelycreek.net>
2011-01-09 17:40:37 -05:00
Tim Pope
33ea0aa4e7 Support submodules in :Gstatus 2011-01-08 16:52:40 -05:00
Tim Pope
9bbea8a2a1 Work around Vim parser idiosyncrasy 2011-01-04 15:04:47 -05:00
Tim Pope
882597d17e Fix trailing slash issues 2011-01-04 14:59:59 -05:00
Tim Pope
64ead8ea1c Don't overwrite paste buffer in :Gread 2010-12-27 23:50:32 -05:00
Tim Pope
ab35c2d9ab Allow :Gmove in a directory 2010-12-27 23:27:03 -05:00
Tim Pope
affce710e2 Mitigate conflict with DirDiff plugin
This plugin tries to be helpful about disabling diff mode when a diff
window closes, which was confusing DirDiff. We can mitigate that but
only disabling diff mode when b:git_dir matches.
2010-11-13 20:26:53 -05:00
Tim Pope
a5e9b2e93e Fix blind copy/paste 2010-11-13 20:15:53 -05:00
Tim Pope
22a832f958 Fix focus anomaly when closing a split
This is seemingly the cause of an incompatibility with the DirDiff
plugin.
2010-11-13 20:04:34 -05:00
Tim Pope
e954d364f5 Rename :Ghdiff to :Gsdiff 2010-11-05 19:45:08 -04:00
Tim Pope
0b4e32180b Fix restoration of :lcd after :Gblame
The restore of :lcd was happening after the split, meaning it was taking
effect in the wrong window.
2010-11-05 18:17:26 -04:00
Tim Pope
b3f38c4886 Add :Gvdiff and :Ghdiff aliases
I haven't decided if this will become the preferred interface or not.
2010-10-24 17:52:59 -04:00
Tim Pope
6ba88784a2 Add :Gvdiff alias for :Gdiff 2010-10-24 17:52:24 -04:00
Tim Pope
e64870df9c Fix error after empty commit message 2010-10-24 13:40:07 -04:00
Tim Pope
de602e3676 Remove debugging statement 2010-10-24 13:39:58 -04:00
Tim Pope
119fd9e1ad <C-N> and <C-P> in :Gstatus cycle between files 2010-09-15 23:24:05 -04:00
Tim Pope
24efca8f4f Fix :Gcommit with noisy pre-commit hook 2010-09-09 11:17:45 -04:00
Tim Pope
9d02bf0868 :Gwrite! calls git add --force 2010-08-21 22:52:45 -04:00
Tim Pope
45fe471b44 Attempt to address GitHub issue #16 2010-08-18 22:20:28 -04:00
Tim Pope
a8bd148683 Rename fugitive#buffer().name() to spec()
In rails.vim, path() and name() have the opposite (and dare I say more
intuitive) semantic of that found in fugitive.vim.  An outright switch
would be a little violent, so for now, rename name() to spec() (as in
"file spec").
2010-08-04 09:29:22 -04:00
Tim Pope
ea89d6ec12 FileType does not have <amatch> as path 2010-08-04 09:29:22 -04:00
Tim Pope
6ea8f2a2ae Update email 2010-08-04 09:29:22 -04:00
Tim Pope
15282dde17 Tighten check of 'tags' for duplicate 2010-08-03 09:22:27 -04:00
Tim Pope
bdab318cc6 Fix setting of 'tags' 2010-08-02 16:52:39 -04:00
Tim Pope
ea588a104c Point 'tags' at .git/tags 2010-07-28 14:45:48 -04:00
Tim Pope
2b9faa8c7f Press dh in :Gstatus to do a horizontal diff 2010-07-28 09:14:25 -04:00
Tim Pope
562ab96b2f Whitespace fix 2010-07-26 11:22:52 -04:00
Tim Pope
a1cc7f3fbd Document :Gdiff! 2010-07-25 21:53:12 -04:00
Vincent Driessen
a8109a541d Ignore tags file that Vim generates. 2010-07-19 07:44:53 +08:00
Michael Geddes
794c21484d Expose config settings and user signature.
Adds config() and user() to the fugitive#buffer() interface.

Signed-off-by: Michael Geddes <vimmer@frog.wheelycreek.net>
2010-06-28 14:39:21 -04:00
Tim Pope
7390538db0 Jump to horizontal diff on "index ..." lines 2010-06-28 11:50:44 -04:00
Tim Pope
559425cafa Replace "Use" with clearer "Press" 2010-06-25 21:30:15 -04:00
Tim Pope
8fcc5cb349 Fix :Gblame with csh 2010-06-08 11:08:05 -04:00
Michael Geddes
3121f01f59 Allow applying from git diffs to work under win32.
The introduction of using 'chcp' in the git.cmd wrapper was causing the
piped in values to be gobbled by the chcp in the call to update-index.

Signed-off-by: Michael Geddes <vimmer@frog.wheelycreek.net>
2010-06-02 23:44:42 -04:00
Tim Pope
ffcc12de5f Fix endif error 2010-06-02 23:43:33 -04:00
Tim Pope
6c44c4795e Only :diffoff in 'diff' buffers 2010-05-25 16:48:34 -04:00
Tim Pope
27e2212ac0 Fix indent 2010-05-25 16:32:09 -04:00
Tim Pope
2ed441fde7 Use window not buffer variable for window restore 2010-05-25 15:34:53 -04:00
Tim Pope
66812106e8 Add missing clear of augroup 2010-05-25 15:32:35 -04:00
Tim Pope
24c5a45431 Disable diff more more aggressively 2010-04-14 11:05:53 -04:00
Tim Pope
1f0bc8cff9 :Gdiff! splits horizontally 2010-04-14 10:49:21 -04:00
5 changed files with 2163 additions and 562 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/doc/tags

18
CONTRIBUTING.markdown Normal file
View File

@@ -0,0 +1,18 @@
Before reporting a bug, you should try stripping down your Vim configuration
and removing other plugins. The sad truth about VimScript is that it is
fraught with incompatibilities waiting to happen. I'm happy to work around
them where I can, but it's up to you to isolate the conflict.
Fugitive is particularly prone to regressions due to Git version issues,
platform issues, and interactions with other plugins. I end up bisecting a
lot more than other projects, and thus I'm especially meticulous here about
maintaining a clean, readable, history. Squash and force push any requested
changes to a pull request. And if your [commit message
sucks](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html),
I'm not going to accept it. Period.
Beyond that, don't be shy about asking before patching. What takes you hours
might take me minutes simply because I have both domain knowledge and a
perverse knowledge of VimScript so vast that many would consider it a symptom
of mental illness. On the flip side, some ideas I'll reject no matter how
good the implementation is. "Send a patch" is an edge case answer in my book.

View File

@@ -1,5 +1,4 @@
fugitive.vim
============
# fugitive.vim
I'm not going to lie to you; fugitive.vim may very well be the best
Git wrapper of all time. Check out these features:
@@ -11,13 +10,14 @@ version of the file side by side with the working tree version and use
Vim's diff handling capabilities to stage a subset of the file's
changes.
Bring up the output of `git status` with `:Gstatus`. Use `-` to
`add`/`reset` a file's changes, or `p` to `add`/`reset` `--patch` that
mofo. And guess what `:Gcommit` does!
Bring up the output of `git status` with `:Gstatus`. Press `-` to
`add`/`reset` a file's changes, or `p` to `add`/`reset` `--patch`. And guess
what `:Gcommit` does!
`:Gblame` brings up an interactive vertical split with `git blame`
output. Press enter on a line to reblame the file as it stood in that
commit, or `o` to open that commit in a split.
output. Press enter on a line to edit the commit where the line
changed, or `o` to open it in a split. When you're done, use `:Gedit`
in the historic buffer to go back to the work tree version.
`:Gmove` does a `git mv` on a file and simultaneously renames the
buffer. `:Gremove` does a `git rm` on a file and simultaneously deletes
@@ -35,11 +35,84 @@ and you never get any warnings about the file changing outside Vim.
making it like `git add` when called from a work tree file and like
`git checkout` when called from the index or a blob in history.
Use `:Gbrowse` to open the current file on GitHub, with optional line
range (try it in visual mode!). If your current repository isn't on
GitHub, `git instaweb` will be spun up instead.
Add `%{fugitive#statusline()}` to `'statusline'` to get an indicator
with the current branch in (surprise!) your statusline.
Oh, and of course there's `:Git` for running any arbitrary command.
Last but not least, there's `:Git` for running any arbitrary command,
and `Git!` to open the output of a command in a temp file.
## Screencasts
* [A complement to command line git](http://vimcasts.org/e/31)
* [Working with the git index](http://vimcasts.org/e/32)
* [Resolving merge conflicts with vimdiff](http://vimcasts.org/e/33)
* [Browsing the git object database](http://vimcasts.org/e/34)
* [Exploring the history of a git repository](http://vimcasts.org/e/35)
## Installation
If you don't have a preferred installation method, one option is to install
[pathogen.vim](https://github.com/tpope/vim-pathogen), and then copy
and paste:
cd ~/.vim/bundle
git clone git://github.com/tpope/vim-fugitive.git
vim -u NONE -c "helptags vim-fugitive/doc" -c q
If your Vim version is below 7.2, I recommend also installing
[vim-git](https://github.com/tpope/vim-git) for syntax highlighting and
other Git niceties.
## FAQ
> I installed the plugin and started Vim. Why don't any of the commands
> exist?
Fugitive cares about the current file, not the current working
directory. Edit a file from the repository.
> I opened a new tab. Why don't any of the commands exist?
Fugitive cares about the current file, not the current working
directory. Edit a file from the repository.
> Why is `:Gbrowse` not using the right browser?
`:Gbrowse` delegates to `git web--browse`, which is less than perfect
when it comes to finding the right browser. You can tell it the correct
browser to use with `git config --global web.browser ...`. On OS X, for
example, you might want to set this to `open`. See `git web--browse --help`
for details.
> Here's a patch that automatically opens the quickfix window after
> `:Ggrep`.
This is a great example of why I recommend asking before patching.
There are valid arguments to be made both for and against automatically
opening the quickfix window. Whenever I have to make an arbitrary
decision like this, I ask what Vim would do. And Vim does not open a
quickfix window after `:grep`.
Luckily, it's easy to implement the desired behavior without changing
fugitive.vim. The following autocommand will cause the quickfix window
to open after any grep invocation:
autocmd QuickFixCmdPost *grep* cwindow
## Self-Promotion
Like fugitive.vim? Follow the repository on
[GitHub](http://github.com/tpope/vim-fugitive) and vote for it on
[vim.org](http://www.vim.org/scripts/script.php?script_id=2975).
[GitHub](https://github.com/tpope/vim-fugitive) and vote for it on
[vim.org](http://www.vim.org/scripts/script.php?script_id=2975). And if
you're feeling especially charitable, follow [tpope](http://tpo.pe/) on
[Twitter](http://twitter.com/tpope) and
[GitHub](https://github.com/tpope).
## License
Copyright (c) Tim Pope. Distributed under the same terms as Vim itself.
See `:help license`.

View File

@@ -1,38 +1,14 @@
*fugitive.txt* A Git wrapper so awesome, it should be illegal
Author: Tim Pope <vimNOSPAM@tpope.info> *fugitive-author*
Author: Tim Pope <http://tpo.pe/>
License: Same terms as Vim itself (see |license|)
This plugin is only available if 'compatible' is not set.
INTRODUCTION *fugitive*
Install in ~/.vim, or in ~\vimfiles if you're on Windows and feeling lucky.
Vim 7.2 is recommended as it ships with syntax highlighting for many Git file
types.
If you're in a hurry to get started, here are some things to try:
In any file in your repository, run |:Gedit| HEAD. Press <CR> to jump to the
current branch. Press <CR> again to jump to the top most commit. Keep using
<CR> to explore parent commits, trees, and blobs. Use C in a tree or blob to
get back to the commit.
Edit a file in the work tree and make some changes. Use |:Gdiff| to open up
the indexed version. Use |do| and |dp| on various hunks to bring the files in
sync, or use |:Gread| to pull in all changes. Write the indexed version to
stage the file.
Run |:Gstatus| to check your repository's status. Use "-" to stage and reset
files and "p" to add/reset --patch them. Invoke |:Gcommit| to commit your
changes.
Run |:Gblame| in a work tree file to see a blame in a vertical split. Press
<CR> on any line to reopen and reblame that file as it stood in that commit.
Press o or O on any line to inspect that commit in a split or a tab.
Run |:Ggrep| to search the work tree or history. Run |:Gmove| to rename a
file. Run |:Gremove| to delete a file.
Whenever you edit a file from a Git repository, a set of commands is defined
that serve as a gateway to Git.
COMMANDS *fugitive-commands*
@@ -43,6 +19,10 @@ that are part of Git repositories).
:Git [args] Run an arbitrary git command. Similar to :!git [args]
but chdir to the repository tree first.
*fugitive-:Git!*
:Git! [args] Like |:Git|, but capture the output into a temp file,
and edit that temp file.
*fugitive-:Gcd*
:Gcd [directory] |:cd| relative to the repository.
@@ -51,32 +31,87 @@ that are part of Git repositories).
*fugitive-:Gstatus*
:Gstatus Bring up the output of git-status in the preview
window. Press D to |:Gdiff| the file on the cursor
line. Press - to stage or unstage the file on the
cursor line. Press p to do so on a per hunk basis
(--patch). Press C to invoke |:Gcommit|.
window. The following maps, which work on the cursor
line file where sensible, are provided:
g? show this help
<C-N> next file
<C-P> previous file
<CR> |:Gedit|
- |:Git| add
- |:Git| reset (staged files)
cA |:Gcommit| --amend --reuse-message=HEAD
ca |:Gcommit| --amend
cc |:Gcommit|
cva |:Gcommit| --amend --verbose
cvc |:Gcommit| --verbose
D |:Gdiff|
ds |:Gsdiff|
dp |:Git!| diff (p for patch; use :Gw to apply)
dp |:Git| add --intent-to-add (untracked files)
dv |:Gvdiff|
O |:Gtabedit|
o |:Gsplit|
p |:Git| add --patch
p |:Git| reset --patch (staged files)
q close status
r reload status
S |:Gvsplit|
*fugitive-:Gcommit*
:Gcommit [args] A wrapper around git-commit. If there is nothing
to commit, |:Gstatus| is called instead. Unless the
arguments given would skip the invocation of an editor
(e.g., -m), a split window will be used to obtain a
commit message. Write and close that window (:wq or
|:Gwrite|) to finish the commit. Unlike when running
the actual git-commit command, it is possible (but
unadvisable) to muck with the index with commands like
git-add and git-reset while a commit message is
pending.
commit message, or a new tab if -v is given. Write
and close that window (:wq or |:Gwrite|) to finish the
commit. Unlike when running the actual git-commit
command, it is possible (but unadvisable) to alter the
index with commands like git-add and git-reset while a
commit message is pending.
*fugitive-:Gmerge*
:Gmerge [args] Calls git-merge and loads errors and conflicted files
into the quickfix list. Opens a |:Gcommit| style
split window for the commit message if the merge
succeeds. If called during a merge conflict, the
conflicted files from the current index are loaded
into the quickfix list.
*fugitive-:Gpull*
:Gpull [args] Like |:Gmerge|, but for git-pull.
*fugitive-:Gpush*
:Gpush [args] Invoke git-push, load the results into the quickfix
list, and invoke |:cwindow| to reveal any errors.
|:Dispatch| is used if available for asynchronous
invocation.
*fugitive-:Gfetch*
:Gfetch [args] Like |:Gpush|, but for git-fetch.
*fugitive-:Ggrep*
:Ggrep [args] |:grep| with git-grep as 'grepprg'.
*fugitive-:Glgrep*
:Glgrep [args] |:lgrep| with git-grep as 'grepprg'.
*fugitive-:Glog*
:Glog [args] Load all previous revisions of the current file into
the quickfix list. Additional git-log arguments can
be given (for example, --reverse). If "--" appears as
an argument, no file specific filtering is done, and
commits are loaded into the quickfix list.
previous commits rather than previous file revisions
are loaded.
:{range}Glog [args] Use git-log -L to load previous revisions of the given
range of the current file into the quickfix list. The
cursor is positioned on the first line of the first
diff hunk for each commit.
*fugitive-:Gllog*
:Gllog [args] Like |:Glog|, but use the location list instead of the
quickfix list.
*fugitive-:Gedit* *fugitive-:Ge*
:Gedit [revision] |:edit| a |fugitive-revision|.
@@ -88,10 +123,15 @@ that are part of Git repositories).
:Gvsplit [revision] |:vsplit| a |fugitive-revision|.
*fugitive-:Gtabedit*
:Gtabedit [revision] |:tabedit| a |fugitive-revision|
:Gtabedit [revision] |:tabedit| a |fugitive-revision|.
*fugitive-:Gpedit*
:Gpedit [revision] |:pedit| a |fugitive-revision|
:Gpedit [revision] |:pedit| a |fugitive-revision|.
:Gsplit! [args] *fugitive-:Gsplit!* *fugitive-:Gvsplit!*
:Gvsplit! [args] *fugitive-:Gtabedit!* *fugitive-:Gpedit!*
:Gtabedit! [args] Like |:Git!|, but open the resulting temp file in a
:Gpedit! [args] split, tab, or preview window.
*fugitive-:Gread*
:Gread [revision] Empty the buffer and |:read| a |fugitive-revision|.
@@ -103,9 +143,12 @@ that are part of Git repositories).
|:read| in a |fugitive-revision| after {range}.
*fugitive-:Gread!*
:Gread! [revision] Deprecated synonym for |:Gread|.
:Gread! [args] Empty the buffer and |:read| the output of a Git
command. For example, :Gread! show HEAD:%.
*fugitive-:Gwrite*
:{range}Gread! [args] |:read| the output of a Git command after {range}.
*fugitive-:Gw* *fugitive-:Gwrite*
:Gwrite Write to the current file's path and stage the results.
When run in a work tree file, it is effectively git
add. Elsewhere, it is effectively git-checkout. A
@@ -118,14 +161,29 @@ that are part of Git repositories).
:0:foo.txt or even :0 to write to just that stage in
the index.
*fugitive-:Gwq*
:Gwq [path] Like |:Gwrite| followed by |:quit| if the write
succeeded.
:Gwq! [path] Like |:Gwrite|! followed by |:quit|! if the write
succeeded.
*fugitive-:Gdiff*
:Gdiff [revision] Perform a |vimdiff| against the current file in the
given revision. With no argument, the version in the
index is used (which means a three-way diff during a
merge conflict, making it a git-mergetool
alternative). The newer of the two files is placed
to the right. Use |do| and |dp| and write to the
index file to simulate "git add --patch".
to the right or bottom, depending on 'diffopt' and
the width of the window relative to 'textwidth'. Use
|do| and |dp| and write to the index file to simulate
"git add --patch".
*fugitive-:Gsdiff*
:Gsdiff [revision] Like |:Gdiff|, but always split horizontally.
*fugitive-:Gvdiff*
:Gvdiff [revision] Like |:Gdiff|, but always split vertically.
*fugitive-:Gmove*
:Gmove {destination} Wrapper around git-mv that renames the buffer
@@ -141,15 +199,71 @@ that are part of Git repositories).
*fugitive-:Gblame*
:Gblame [flags] Run git-blame on the file and open the results in a
scroll bound vertical split. Press enter on a line to
reblame the file as it was in that commit. You can
give any of ltwfsMC as flags and they will be passed
along to git-blame.
scroll bound vertical split. You can give any of
ltfnsewMC as flags and they will be passed along to
git-blame. The following maps, which work on the
cursor line commit where sensible, are provided:
g? show this help
A resize to end of author column
C resize to end of commit column
D resize to end of date/time column
q close blame and return to blamed window
gq q, then |:Gedit| to return to work tree version
<CR> q, then open commit
o open commit in horizontal split
O open commit in new tab
- reblame at commit
~ reblame at [count]th first grandparent
P reblame at [count]th parent (like HEAD^[count])
:[range]Gblame [flags] Run git-blame on the given range.
*fugitive-:Gbrowse*
:Gbrowse Open the current file, blob, tree, commit, or tag
in your browser at the upstream hosting provider
indicated by the "origin" remote. If a range is
given, it is appropriately appended to the URL as an
anchor.
Upstream providers can be added by installing an
appropriate Vim plugin. For example, GitHub can be
supported by installing rhubarb.vim, available at
<https://github.com/tpope/vim-rhubarb>. (Native
support for GitHub is currently included, but that is
slated to be removed.)
If no upstream support is available, a local instance
of git-instaweb will be started and used instead.
:Gbrowse {revision} Like :Gbrowse, but for a given |fugitive-revision|. A
useful value here is -, which ties the URL to the
latest commit rather than a volatile branch.
:Gbrowse [...]@{remote} Force using the given remote rather than the remote
for the current branch. The remote is used to
determine which GitHub repository to link to.
:{range}Gbrowse [args] Appends an anchor to the URL that emphasizes the
selected lines. You almost certainly want to give a
"-" argument in this case to force the URL to include
an exact revision.
:[range]Gbrowse! [args] Like :Gbrowse, but put the URL on the clipboard rather
than opening it.
MAPPINGS *fugitive-mappings*
These maps are available everywhere.
*fugitive-c_CTRL-R_CTRL-G*
<C-R><C-G> On the command line, recall the path to the current
object (that is, a representation of the object
recognized by |:Gedit|).
*fugitive-y_CTRL-G*
["x]y<C-G> Yank the commit SHA and path to the current object.
These maps are available in Git objects.
*fugitive-<CR>*
@@ -158,9 +272,16 @@ These maps are available in Git objects.
*fugitive-o*
o Jump to the revision under the cursor in a new split.
*fugitive-S*
S Jump to the revision under the cursor in a new
vertical split.
*fugitive-O*
O Jump to the revision under the cursor in a new tab.
*fugitive--*
- Go to the tree containing the current tree or blob.
*fugitive-~*
~ Go to the current file in the [count]th first
ancestor.
@@ -171,6 +292,10 @@ P Go to the current file in the [count]th parent.
*fugitive-C*
C Go to the commit containing the current file.
*fugitive-.*
. Start a |:| command line with the current revision
prepopulated at the end of the line.
*fugitive-a*
a Show the current tag, commit, or tree in an alternate
format.
@@ -211,6 +336,12 @@ a statusline, this one matches the default when 'ruler' is set:
>
set statusline=%<%f\ %h%m%r%{fugitive#statusline()}%=%-14.(%l,%c%V%)\ %P
<
*fugitive#head(...)*
Use fugitive#head() to return the name of the current branch. If the current
HEAD is detached, fugitive#head() will return the empty string, unless the
optional argument is given, in which case the hash of the current commit will
be truncated to the given number of characters.
ABOUT *fugitive-about*
Grab the latest version or report a bug on GitHub:

File diff suppressed because it is too large Load Diff