Tim Pope
d002715084
Optimize inline expansion for large diffs
...
Resolves: https://github.com/tpope/vim-fugitive/issues/2011
2022-06-13 10:09:36 -04:00
Tim Pope
0680c3ae3c
Remove last vestiges of :Gread!
2022-06-13 07:13:34 -04:00
Tim Pope
8c63ac0f2f
Fix error message on fugitive#repo().config()
2022-06-13 07:13:34 -04:00
Tim Pope
b42f95c0c2
DWIM for % and # in URL argument
2022-06-13 07:13:34 -04:00
Tim Pope
020802475c
Add error stubs for old fugitive#repo() object
...
This is still used in the wild, so provide error messages to aid in
transitioning.
2022-06-12 12:47:36 -04:00
Tim Pope
535389b9a6
Improve performance of FugitiveStatusline()
...
Avoiding fugitive#Find() saves a millisecond or 2. Not a big deal but
still worth avoiding given how often this function is called.
2022-06-11 09:32:50 -04:00
Tim Pope
d1d485cdef
Leverage FugitiveActualDir() abstraction
2022-06-11 09:32:50 -04:00
Tim Pope
8378b329b8
Drop obsolete public functions
2022-06-07 05:40:49 -04:00
Tim Pope
92c73bb050
Set b:git_dir in FugitiveEditor buffers
...
This should make us a bit more robust in the face of things like
symlinks.
2022-06-07 05:40:49 -04:00
Tim Pope
1d6e601298
Extract helper to initialize b:git_dir
2022-06-07 05:40:49 -04:00
Tim Pope
4aeca0c566
Drop support for Vim older than 7.4
2022-06-07 03:14:49 -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
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
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
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
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
Maksim Odnoletkov
70251a915f
Show local commits when no upstream is set
...
References: https://github.com/tpope/vim-fugitive/issues/1963
Resolves: https://github.com/tpope/vim-fugitive/issues/1977
2022-04-20 14:47:15 -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
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
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
Roger Bongers
59529a2c36
Add basic bisect subcommand completion
2022-01-24 21:13:07 -05:00
Tim Pope
f4d94c5985
Move CommonDir() from autoload to plugin
2022-01-11 18:47:38 -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