89 Commits
v1.0 ... v1.2

Author SHA1 Message Date
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
Tim Pope
ccfc60e550 fugitive.vim 1.1 2010-03-21 17:18:43 -04:00
Tim Pope
57393e7956 D in :Gstatus not on a file invokes :Git diff 2010-03-19 21:48:41 -04:00
Tim Pope
4975e76935 D in :Gstatus invokes :Gdiff 2010-03-19 21:23:41 -04:00
Tim Pope
e3e31ce9d7 Fix error in :Gmove 2010-03-19 21:06:08 -04:00
Tim Pope
56b8ad786b Allow double quotes in :Git and :Ggrep arguments
:Git and :Ggrep were defined with the -bar flag, which enables chaining
(`:Ggrep foo | copen`) but also comments (`:Ggrep foo " find foo).  The
former is useful but the latter prevents one from using double quotes
with commands.  Instead, let's disable -bar and fake it in the
implementation.

:Git implements chaining in a way that's hopefully the same as the way
Vim itself chains.  :Ggrep is a little different; it only chains after a
quote or a space so that `:Ggrep -e 'foo|bar'|copen` works as one would
expect.
2010-03-19 19:59:08 -04:00
Tim Pope
6b55a997a9 Finish pending commit even if exiting Vim 2010-03-11 22:15:35 -05:00
Tim Pope
b812cb3bcd Skip duplicate "Signed-off-by" [Wincent Colaiuta] 2010-03-10 19:44:38 -05:00
Tim Pope
13fd856db9 Strip .exe from completed Git commands 2010-03-10 19:37:49 -05:00
Tim Pope
1548f141e0 Fix restoring of $GIT_INDEX_FILE 2010-03-09 19:13:28 -05:00
Tim Pope
f05eb566e6 Use forward slashes in tab complete on Windows 2010-03-09 19:03:44 -05:00
Tim Pope
43290adc85 Fix :Gblame on Windows 2010-03-09 08:43:57 -05:00
Tim Pope
5f64bb35c9 Leave pager enabled on win32 git invocation 2010-03-08 22:57:18 -05:00
Tim Pope
f41e5c9679 Attempt to support 'noshellslash' on Windows 2010-03-08 22:51:10 -05:00
Tim Pope
9c86a7d379 Pass :Gblame flags along to git-blame 2010-03-05 22:28:53 -05:00
Tim Pope
05c0efacab Add a README 2010-02-24 22:48:40 -05:00
Tim Pope
0c99745853 Delete blame buffers when closed 2010-02-16 09:28:00 -05:00
4 changed files with 611 additions and 117 deletions

1
.gitignore vendored Normal file
View File

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

70
README.markdown Normal file
View File

@@ -0,0 +1,70 @@
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:
View any blob, tree, commit, or tag in the repository with `:Gedit` (and
`:Gsplit`, `:Gvsplit`, `:Gtabedit`, ...). Edit a file in the index and
write to it to stage the changes. Use `:Gdiff` to bring up the staged
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`. Press `-` to
`add`/`reset` a file's changes, or `p` to `add`/`reset` `--patch` that
mofo. 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. 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
the buffer.
Use `:Ggrep` to search the work tree (or any arbitrary commit) with
`git grep`, skipping over that which is not tracked in the repository.
`:Glog` loads all previous revisions of a file into the quickfix list so
you can iterate over them and watch the file evolve!
`:Gread` is a variant of `git checkout -- filename` that operates on the
buffer rather than the filename. This means you can use `u` to undo it
and you never get any warnings about the file changing outside Vim.
`:Gwrite` writes to both the work tree and index versions of a file,
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.
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).
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.
> I changed the current working directory. Why do all the commands use
> the old directory?
Fugitive cares about the current file, not the current working
directory. Edit a file from the repository.

View File

@@ -1,6 +1,6 @@
*fugitive.txt* A Git wrapper so awesome, it should be illegal
Author: Tim Pope <vimNOSPAM@tpope.info> *fugitive-author*
Author: Tim Pope <vimNOSPAM@tpope.org> *fugitive-author*
License: Same terms as Vim itself (see |license|)
This plugin is only available if 'compatible' is not set.
@@ -51,9 +51,15 @@ that are part of Git repositories).
*fugitive-:Gstatus*
:Gstatus Bring up the output of git-status in the preview
window. 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. In addition to standard motions, you can
use <C-N> and <C-P> to jump from filename to
filename. Press C to invoke |:Gcommit|. Press D to
|:Gdiff| the file on the cursor line, or ds to
|:Gsdiff|. Press - to stage or unstage the file on
the cursor line. Press p to do so on a per hunk basis
(--patch). All of D, -, and p have a different,
sensible (and hopefully intuitive) behavior when
invoked on a heading rather than a file name.
*fugitive-:Gcommit*
:Gcommit [args] A wrapper around git-commit. If there is nothing
@@ -101,9 +107,6 @@ that are part of Git repositories).
:{range}Gread [revision]
|:read| in a |fugitive-revision| after {range}.
*fugitive-:Gread!*
:Gread! [revision] Deprecated synonym for |:Gread|.
*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
@@ -117,6 +120,13 @@ 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
@@ -126,6 +136,12 @@ that are part of Git repositories).
to the right. Use |do| and |dp| and write to the
index file to simulate "git add --patch".
*fugitive-:Gsdiff*
:Gsdiff [revision] Like |:Gdiff|, but split horizontally.
*fugitive-:Gvdiff*
:Gvdiff [revision] Identical to |:Gdiff|. For symmetry with |:Gsdiff|.
*fugitive-:Gmove*
:Gmove {destination} Wrapper around git-mv that renames the buffer
afterward. The destination is relative to the current
@@ -139,11 +155,35 @@ that are part of Git repositories).
buffer.
*fugitive-:Gblame*
:Gblame Run git-blame on the file and open the results in a
: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.
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.
:[range]Gblame Run git-blame on the given range.
:[range]Gblame [flags] Run git-blame on the given range.
*fugitive-:Gbrowse*
:[range]Gbrowse If the remote for the current branch is on GitHub,
open the current file, blob, tree, commit, or tag
(with git-web--browse) on GitHub. Otherwise, open the
current file, blob, tree, commit, or tag in
git-instaweb (if you have issues, verify you can run
"git instaweb" from a terminal). If a range is given,
it is appropriately appended to the URL as an anchor.
:[range]Gbrowse! Like :Gbrowse, but put the URL on the clipboard rather
than opening it.
:[range]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.
:[range]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.
MAPPINGS *fugitive-mappings*

File diff suppressed because it is too large Load Diff