Tim Pope
96c1009fcf
fugitive.vim 3.7
...
Move "Unpushed" sections above "Unpulled".
Show commits that are unpushed anywhere when no upstream is set.
Provide czs map as :Git stash push --staged.
Support the MSYS Vim bundled with Git for Windows.
Turn remaining deprecated commands (:Gbrowse, etc.) into error stubs.
2022-06-07 01:03:24 -04:00
Tim Pope
5920f807f5
Expire b:git_dir on buffer rename
2022-06-03 20:33:48 -04:00
Tim Pope
f60fc79e53
Avoid unnamed buffer with :set hidden
...
Resolves: https://github.com/tpope/vim-fugitive/issues/2004
2022-06-01 12:54:13 -04:00
Tim Pope
fb07620878
Retool $GIT_INDEX_FILE handling
...
* Don't attempt to handle relative paths, as there's no guarantee the
current working directory is the one Vim was started with. In
practice, the only relative path I've seen is `.git/index`, which is
already the default and thus harmless to ignore.
* Cache the result of FugitiveVimPath(), to allow for slow
implementations.
2022-05-31 16:11:22 -04:00
Tim Pope
8fba012775
Fix fugitive#simplify() with summary URL
2022-05-31 16:11:22 -04:00
Tim Pope
596621dc6e
Support Git for Windows bundled MSYS Vim
...
References: https://github.com/tpope/vim-fugitive/issues/1970
2022-05-30 16:48:48 -04:00
Tim Pope
5bf3fd40f6
Provide FugitiveActualDir()
...
This is intended to free up FugitiveGitDir() to refer to the ".git" file
in that work tree and submodule repositories use. I wish I had better
names for these two. Settling for "Actual" as that at least has a
pleasing 6 letter symmetry with "Common".
2022-05-30 14:03:43 -04:00
Tim Pope
950f9c49fc
Introduce helper to normalize to backslashes on win32
...
FugitiveVimPath() is intended to potentially convert between UNIX and
Windows paths in mixed environments. Let's separate uses that require
that from those that simply normalize slashes.
2022-05-30 14:03:43 -04:00
Tim Pope
92870eb6d2
Remove dead code for resolving symlinked buffer name
...
The `:p` flag resolves symlinks, so the resolve() call is a no-op, and
the subsequent conditional is always false. It also appears to be no
longer necessary, though I'd have to do a bit more digging to figure out
why.
2022-05-28 21:57:21 -04:00
Tim Pope
5ec0793b88
Accept both fugitive://C:/ and fugitive:///C:/ on win32
...
The 2 slash version slots the drive letter into the host field, which
I'm worried will cause problems when the URLs are used non-opaquely, for
example, with an LSP. Let's start transitioning to the convention used
by file:// URLs.
2022-05-28 21:00:24 -04:00
Tim Pope
a504abb8b8
Avoid reusing variable
2022-05-28 21:00:24 -04:00
Tim Pope
ad16275775
Fix statusline indicator on older Vim
...
Vim was clearing the statusline due to an error, despite the fact the
exception was caught and ignored.
2022-05-27 22:56:20 -04:00
Tim Pope
41939b09cb
Move s:SameRepo() next to other Git dir functions
2022-05-27 21:01:42 -04:00
Tim Pope
097ce939da
Make summary buffer available at fugitive:// URL
...
Using $GIT_DIR/index for the summary buffer has 2 problems:
* It requires a BufReadCmd for all files named "index", necessitating
special handling for false positives.
* It forces us to resolve ".git" files and symlinks, decoupling us from
the worktree and thus forcing us to depend on `core.worktree`. Git
always sets this when necessary, but users and third-party tooling
sometimes do not.
Using a fugitive:// URL for the buffer solves both.
This is a large, breaking change, so let's leave $GIT_DIR/index as the
default for now.
2022-05-27 19:50:53 -04:00
Tim Pope
9a4f1e9df2
Extract helper for checking for same repository
2022-05-27 18:20:45 -04:00
Tim Pope
0e9f763c7b
Allow :GBrowse : to browse to repository homepage
2022-05-22 22:26:45 -04:00
Tim Pope
fb32927ff5
Use correct normalization of URL in fugitive#Path()
2022-05-22 22:26:45 -04:00
Tim Pope
22a843f8e6
Add missing ! to function definition
2022-05-22 22:26:45 -04:00
Tim Pope
9f30e4d904
Experimentally allow passing Git dir to fugitive#Command()
...
References: https://github.com/tpope/vim-fugitive/issues/1981
2022-05-22 17:33:53 -04:00
Tim Pope
cdacef342d
Distinguish between uses of Git dir, part 2
...
See 5d1a276b45 .
2022-05-21 21:35:50 -04:00
Tim Pope
f48cbb92c5
Read more of config file for core.worktree check
...
References: https://github.com/tpope/vim-fugitive/issues/1920
2022-05-21 21:35:50 -04:00
Tim Pope
589e8b51c2
Track correct window when blaming twice-open buffer
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1992
2022-05-21 21:35:49 -04:00
Tim Pope
5b62c75238
Extract Git dir cache keys to local variables
...
Allow for a non-string representation of the repository to replace the
dir parameter.
2022-05-14 02:35:39 -04:00
Tim Pope
a8139d37b2
Properly normalize Git dir in 'keywordprg'
2022-05-13 01:56:20 -04:00
Tim Pope
f529acef74
Force Vim path normalization in fugitive#Path()
...
This only matters for use cases where the paths differ by more than just
slashes (theoretically possible with mixed WSL setups).
2022-05-11 02:12:21 -04:00
Tim Pope
87923d1b1b
Fix HEAD cache expiry on FugitiveDidChange()
2022-05-11 00:23:14 -04:00
Tim Pope
af8b352dbf
Remove redundant "dir" keys from dictionaries
2022-05-11 00:23:14 -04:00
Tim Pope
b81c59bd6a
Remove fugitive#head()
2022-05-10 22:47:05 -04:00
Tim Pope
b7287bd542
Provide explicit explanation of command naming
2022-04-26 16:21:33 -04:00
Tim Pope
b5bbd0d181
Clarify ~ and P maps in blame window
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1980
2022-04-21 15:05:35 -04:00
Tim Pope
b04708af2d
Revert "Avoid IO from ":p" during detection"
...
This change failed to account for the directory edge case, where ":p:h"
has the very nice property of giving us back the original input, due to
":p" appending a trailing slash. Without this, we fail to detect when
editing the root of the repository.
This reverts commit 1b811b88a4 .
Resolves: https://github.com/tpope/vim-fugitive/issues/1978
Resolves: https://github.com/tpope/vim-fugitive/issues/1979
2022-04-20 23:25:14 -04:00
Tim Pope
1b811b88a4
Avoid IO from ":p" during detection
2022-04-20 18:29:45 -04:00
Tim Pope
ed1ff363df
Remove another acwrite check
2022-04-20 18:29:45 -04:00
Tim Pope
e064f42770
Don't consider buftype=acwrite buffers to have real filenames
...
Immediately after I changed this I rediscovered the documentation at
`:help E676`.
2022-04-20 18:28:44 -04:00
Tim Pope
200593827e
Adjust handling of 'buftype' during detection
2022-04-19 18:35:15 -04:00
Tim Pope
4b0f2b6045
Default g:ceiling_directories to parent of $HOME
...
References: https://github.com/tpope/vim-fugitive/issues/1457
2022-04-14 02:31:49 -04:00
Tim Pope
a252be79c0
Check for ch_close_in() to ensure full Vim jobs support
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1973
2022-04-12 19:51:42 -04:00
Tim Pope
cba863444c
Move unpushed sections above unpulled, again
...
This reverts commit 279d56eb47
(effectively).
References: https://github.com/tpope/vim-fugitive/issues/1963
2022-04-05 12:13:40 -04:00
Tim Pope
d725ef529e
Turn remaining deprecated commands into error stubs
2022-04-01 18:27:49 -04:00
Tim Pope
8f169a84ff
Allow simultaneous blames in diffed buffers
...
References: https://github.com/tpope/vim-fugitive/pull/1327
2022-04-01 18:27:49 -04:00
Tim Pope
d9a914b14d
Replace 'cursorbind' in blame with manual line syncing
...
This is the only way to sync the line without also syncing the column.
Syncing the column is particularly problematic when it causes the blame
window to vertically scroll while typing.
2022-04-01 18:27:44 -04:00
Tim Pope
c0701f7a0e
Fix expansion of SSH host aliases
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1962
2022-03-30 11:08:14 -04:00
Tim Pope
321328c6c5
Avoid I/O from ":p" when handling temp files
...
This isn't a big deal for temp files themselves, but if we're checking
an arbitrary buffer, it's possible we'll end up hitting a slow network
share just to find out if the path is relative.
This new s:AbsoluteVimPath() helper could potentially be reused in a lot
of places. But this diff is big enough as is; save that for later.
2022-03-26 15:41:55 -04:00
Tim Pope
8157efff49
Provide g:fugitive_defer_to_existing_maps
...
References: https://github.com/tpope/vim-fugitive/issues/1425
2022-03-25 18:08:01 -04:00
Tim Pope
b6405d8908
Provide literally named <Plug> maps
...
For every map X, also provide a map <Plug>fugitive:X.
References: https://github.com/tpope/vim-fugitive/issues/1425
2022-03-25 17:50:32 -04:00
Tim Pope
5716e11776
Fix line wrap in README
2022-03-24 08:02:43 -04:00
Tim Pope
46652a304f
Add :GUnlink, like in eunuch.vim
...
This currently mirrors :GRemove, but gives us the option to add a third
variant.
2022-03-09 10:50:24 -05:00
Tim Pope
afd6c13c6b
Fix infinite loop when summary window contains no sections
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1954
2022-03-01 07:35:31 -05:00
Tim Pope
485ce07c27
Match FugitiveRemote() interface to window.location in JS
2022-02-11 13:02:45 -05:00
Tim Pope
c29ef11cd6
Parse anchor in remote URL
...
I've never seen this in practice, but if it does happen, we shouldn't
include it in the value for "path".
2022-02-11 13:02:45 -05:00
Tim Pope
6c19f1ddfb
More robut escaping of +cmd arguments
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1938
2022-02-02 11:53:01 -05:00
Tim Pope
a443104489
Add czs as :Git stash push --staged
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1941
2022-02-02 05:49:09 -05:00
Tim Pope
a93ceff61f
Support extensions.worktreeConfig
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1898
2022-01-13 14:06:42 -05:00
Tim Pope
f4d94c5985
Move CommonDir() from autoload to plugin
2022-01-11 18:47:38 -05:00
Tim Pope
bb4f9e660b
Add core.worktree to FAQ
2022-01-11 18:39:40 -05:00
Tim Pope
189e3c406e
Eliminate filereadable() guards by catching readfile() error
2022-01-11 18:36:36 -05:00
Tim Pope
944dc602c6
Require core.bare=true for bare repositories
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1920
2022-01-11 13:50:55 -05:00
Tim Pope
fa20e5e77c
Remove :silent from all :checktime uses
...
This can appear to hang with 'noautoread', or if the buffer has changed
in memory. In reality it's not hanging, it's just silenced the
interactive prompt.
Resolves: https://github.com/tpope/vim-fugitive/issues/1917
2022-01-10 11:08:29 -05:00
Tim Pope
57968b63c2
Support tab complete of :Git push remote \+branch
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1916
2022-01-05 11:10:57 -05:00
Tim Pope
88a97127d1
Account for optional escaping in tab complete
...
Tab complete results are always passed to fnameescape(), which can
result in the output having more backslashes than the input, causing
those results to be filtered out. Attempt to reconcile this.
References: https://github.com/tpope/vim-fugitive/issues/1916
2022-01-05 11:08:38 -05:00
Tim Pope
b6dbb97759
Extend lazy detection to netrw
...
The requires dropping support for b:netrw_curdir, which was added in
fecd42864a for the vague reason of
handling "unusually named netrw buffers". I'll figure out what to do
about those alleged buffers when one of them surfaces again.
2022-01-05 11:07:15 -05:00
Tim Pope
b1c3cdffc9
Fix status reload after staging entire section
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1912
2021-12-29 16:50:00 -05:00
Tim Pope
ee992c808c
Narrow application of broken jobwait() workaround
...
Neovim seemlingly forces a redraw if :sleep is called while defocused,
but only if at least one FocusGained/FocusLost autocommand is defined.
The purpose of this :sleep is to force the exit callback to run when
jobwait() erroneously refuses to do the job. Our exit callback removes
the job from the dictionary, so we can use the lack of a job key in any
dictionary as a signal that we can skip it. Hacks on top of hacks.
Resolves: https://github.com/tpope/vim-fugitive/issues/1909
References: https://github.com/tpope/vim-fugitive/issues/1857
2021-12-28 16:03:34 -05:00
Tim Pope
831fdab983
Simplify extraction of directory of buffer name
...
The behavior of :p is more predictable than I realized when I first
wrote this.
2021-12-28 16:03:34 -05:00
Tim Pope
da30818d17
Resize EDITOR window automatically when necessary
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1907
2021-12-24 12:53:00 -05:00
Tim Pope
ab57abf1d0
Don't feedkeys() into terminal window
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1908
2021-12-23 21:47:29 -05:00
Tim Pope
f18571e647
Remove redundant ":p" modification during detection
...
Every ":p" does I/O to check for a directory, so let's do away with the
belt-and-suspenders usage.
2021-12-23 15:00:14 -05:00
Tim Pope
3fb9beacbc
Fix possible infinite loop
2021-12-12 13:28:20 -05:00
Tim Pope
365231384c
Don't treat buftype=nofile buffer names as file names
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1905
2021-12-08 16:17:41 -05:00
Tim Pope
c04e80c6eb
Fix accidental :execute 0
2021-12-08 16:13:28 -05:00
Tim Pope
79c2b3f48d
Try nested autocmds for ReadCmd/WriteCmd
...
I'm trying to leverage OptionSet for something. Let's see if this
causes issues for anybody.
2021-12-07 09:17:47 -05:00
Tim Pope
2064312ad7
Don't reject invalid Git dir when detecting common dir
...
Consumers of this function should be giving us a valid Git dir, and if
they don't, returning an empty string will only make matters worse.
References: https://github.com/tpope/vim-fugitive/pull/1898
2021-12-01 20:05:47 -05:00
Tim Pope
c666c86882
Fix blame from stage buffer
...
References: https://github.com/tpope/vim-fugitive/issues/1892
2021-12-01 19:48:43 -05:00
Tim Pope
a099a2631c
Disable diff.suppressBlankEmpty for summary window diff
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1897
2021-12-01 19:27:29 -05:00
Tim Pope
82f2841bdf
Fix gf error in commit message outside of repository
2021-11-28 15:36:44 -05:00
Tim Pope
5a24c25275
fugitive.vim 3.6
...
* Fix support for older Vim 7 patch levels.
* Support copies on :Gclog --follow.
2021-11-25 14:53:57 -05:00
Tim Pope
e82332ee9e
Try to avoid trailing newline blame issues
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1892
2021-11-22 13:24:21 -05:00
Tim Pope
64bc1a3431
Remove dead code
...
The use of remove() here wouldn't actually work as it expects an index,
not a value.
2021-11-19 17:42:33 -05:00
Tim Pope
4a8db6b856
Support copies with :Gclog --follow
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1891
2021-11-19 17:19:30 -05:00
Tim Pope
3d5d23fe80
Remove q map stubs
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1890
2021-11-19 17:16:36 -05:00
Tim Pope
2dfaf17f9e
Use dummy events to prevent "No matching autocommands" message
...
This list of events was hand-curated to eliminate events already defined
elsewhere in the autoload file.
Resolves: https://github.com/tpope/vim-fugitive/issues/1887
2021-11-16 16:09:59 -05:00
Tim Pope
69ae31d402
Fix command execution on Vim 7
...
This worked on my test environment of 7.4.888, but did not work on
7.4.000.
References: https://github.com/tpope/vim-fugitive/issues/1889
2021-11-16 13:44:55 -05:00
Tim Pope
f9c0b8eafe
Fix readfile() usage
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1886
2021-11-15 20:54:19 -05:00
Tim Pope
e47121f8fd
Fix typo
2021-11-15 00:31:32 -05:00
Tim Pope
cd67d087df
fugitive.vim 3.5
...
* Lazy initialization.
* Make status buffer diff retrieval asynchronous.
* Support jump to diff from :Git log --name-status.
* Use smudge filters when viewing blobs.
* Provide User FugitiveEditor event.
* Provide FugitiveRemote() API function.
2021-11-15 00:17:52 -05:00
Tim Pope
b736e457b3
Provide FugitiveRemote()
2021-11-13 16:25:36 -05:00
Tim Pope
2e4ee0b5d6
Don't scroll :Git! window for paginated commands
...
References: https://github.com/tpope/vim-fugitive/issues/1832
2021-11-11 00:44:14 -05:00
Tim Pope
a6b823b8d0
Fix race condition on nvim 0.4
...
I could have sworn this wasn't necessary on 0.4, which is why I added
the extra clause, but I can consistently reproduce E716 now.
Resolves: https://github.com/tpope/vim-fugitive/issues/1881
2021-11-02 14:07:58 -04:00
Tim Pope
174fd6a39b
Revert "Use :redrawstatus rather than &ro = &ro"
...
Turns out :redrawstatus is a lot more aggressive and can prevent seeing
Fugitive output.
This reverts commit 6ad15506cc .
References: https://github.com/tpope/vim-fugitive/issues/1180
2021-10-27 03:17:44 -04:00
Tim Pope
6ad15506cc
Use :redrawstatus rather than &ro = &ro
...
References: https://github.com/tpope/vim-fugitive/issues/1180
2021-10-26 09:22:33 -04:00
Tim Pope
30933405bb
Support blame maps without filetype plugin on
...
References: https://github.com/tpope/vim-fugitive/issues/1745
2021-10-19 11:44:22 -04:00
Tim Pope
4d29c1d6a0
Provide for retrieving parsed remote URL
...
The plan is to expose this as FugitiveRemote(), but let's give it some
bake time before making it official.
2021-10-17 20:25:23 -04:00
Tim Pope
93f41ace7d
Move to beginning of line in "(" map
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1867
2021-10-17 11:22:10 -04:00
Tim Pope
d5a6419fcf
Guard against parallel status reload
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1863
2021-10-17 11:22:10 -04:00
Tim Pope
88c7f867cf
Further decouple #BufReadStatus() from v:cmdbang
2021-10-16 12:58:13 -04:00
Tim Pope
0615cd2baf
Ignore v:cmdbang when not in autocommand
2021-10-16 10:57:04 -04:00
Tim Pope
ca61174e9d
Remove leading slash when parsing scpremote:/~user
2021-10-16 10:43:42 -04:00
Tim Pope
a4c6fb74ee
Help file formatting fix
2021-10-16 10:43:42 -04:00
Tim Pope
2e66b3ad05
Don't show diff on root commits
...
The diff on a root commit is often large and seldom helpful, so let's
get rid of it. This will also be one less thing to worry about when
changing to a fugitive file type.
2021-10-12 12:34:43 -04:00
Tim Pope
e38d029500
Adjust encapsulation of escaped completion handling
...
Most calls to s:FilterEscape() pass the original escaped argument, so
we should fix the callers that don't.
2021-10-11 00:38:57 -04:00