mirror of
https://github.com/tpope/vim-fugitive.git
synced 2025-11-15 06:43:51 -05:00
Compare commits
2 Commits
master
...
eb5268c7fa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb5268c7fa | ||
|
|
29075ed079 |
@@ -4,6 +4,11 @@
|
|||||||
" The functions contained within this file are for internal use only. For the
|
" The functions contained within this file are for internal use only. For the
|
||||||
" official API, see the commented functions in plugin/fugitive.vim.
|
" official API, see the commented functions in plugin/fugitive.vim.
|
||||||
|
|
||||||
|
if exists('g:autoloaded_fugitive')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:autoloaded_fugitive = 1
|
||||||
|
|
||||||
" Section: Utility
|
" Section: Utility
|
||||||
|
|
||||||
function! s:function(name) abort
|
function! s:function(name) abort
|
||||||
@@ -2066,8 +2071,6 @@ function! s:Expand(rev, ...) abort
|
|||||||
endif
|
endif
|
||||||
elseif s:Slash(a:rev) =~# '^\a\a\+://'
|
elseif s:Slash(a:rev) =~# '^\a\a\+://'
|
||||||
let file = substitute(a:rev, '\\\@<!\%(#\a\|%\x\x\)', '\\&', 'g')
|
let file = substitute(a:rev, '\\\@<!\%(#\a\|%\x\x\)', '\\&', 'g')
|
||||||
elseif a:rev =~# '^:[!#%$]'
|
|
||||||
let file = ':0' . a:rev
|
|
||||||
else
|
else
|
||||||
let file = a:rev
|
let file = a:rev
|
||||||
endif
|
endif
|
||||||
@@ -2694,7 +2697,7 @@ function! s:MapStatus() abort
|
|||||||
call s:MapMotion('gP', "exe <SID>StageJump(v:count, 'Unpulled')")
|
call s:MapMotion('gP', "exe <SID>StageJump(v:count, 'Unpulled')")
|
||||||
call s:MapMotion('gr', "exe <SID>StageJump(v:count, 'Rebasing')")
|
call s:MapMotion('gr', "exe <SID>StageJump(v:count, 'Rebasing')")
|
||||||
call s:Map('n', 'C', ":echoerr 'fugitive: C has been removed in favor of cc'<CR>", '<silent><unique>')
|
call s:Map('n', 'C', ":echoerr 'fugitive: C has been removed in favor of cc'<CR>", '<silent><unique>')
|
||||||
call s:Map('n', 'a', ":echoerr 'fugitive: a has been removed in favor of s'<CR>", '<silent><unique>')
|
call s:Map('n', 'a', ":<C-U>execute <SID>Do('Toggle',0)<CR>", '<silent>')
|
||||||
call s:Map('n', 'i', ":<C-U>execute <SID>NextExpandedHunk(v:count1)<CR>", '<silent>')
|
call s:Map('n', 'i', ":<C-U>execute <SID>NextExpandedHunk(v:count1)<CR>", '<silent>')
|
||||||
call s:Map('n', "=", ":<C-U>execute <SID>StageInline('toggle',line('.'),v:count)<CR>", '<silent>')
|
call s:Map('n', "=", ":<C-U>execute <SID>StageInline('toggle',line('.'),v:count)<CR>", '<silent>')
|
||||||
call s:Map('n', "<", ":<C-U>execute <SID>StageInline('hide', line('.'),v:count)<CR>", '<silent>')
|
call s:Map('n', "<", ":<C-U>execute <SID>StageInline('hide', line('.'),v:count)<CR>", '<silent>')
|
||||||
@@ -2937,34 +2940,20 @@ function! s:StatusRender(stat) abort
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
let sequencing = []
|
let sequencing = []
|
||||||
try
|
if filereadable(fugitive#Find('.git/sequencer/todo', dir))
|
||||||
let sequencer_todo = reverse(readfile(fugitive#Find('.git/sequencer/todo', dir)))
|
for line in reverse(readfile(fugitive#Find('.git/sequencer/todo', dir)))
|
||||||
catch
|
|
||||||
endtry
|
|
||||||
if exists('sequencer_todo')
|
|
||||||
for line in sequencer_todo
|
|
||||||
let match = matchlist(line, '^\(\l\+\)\s\+\(\x\{4,\}\)\s\+\(.*\)')
|
let match = matchlist(line, '^\(\l\+\)\s\+\(\x\{4,\}\)\s\+\(.*\)')
|
||||||
if len(match) && match[1] !~# 'exec\|merge\|label'
|
if len(match) && match[1] !~# 'exec\|merge\|label'
|
||||||
call add(sequencing, {'type': 'Rebase', 'status': get(s:rebase_abbrevs, match[1], match[1]), 'commit': match[2], 'subject': match[3]})
|
call add(sequencing, {'type': 'Rebase', 'status': get(s:rebase_abbrevs, match[1], match[1]), 'commit': match[2], 'subject': match[3]})
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
else
|
elseif filereadable(fugitive#Find('.git/MERGE_MSG', dir))
|
||||||
try
|
|
||||||
let merge_msg = get(readfile(fugitive#Find('.git/MERGE_MSG', dir)), 0, '')
|
|
||||||
catch
|
|
||||||
endtry
|
|
||||||
endif
|
|
||||||
if exists('merge_msg')
|
|
||||||
if filereadable(fugitive#Find('.git/CHERRY_PICK_HEAD', dir))
|
if filereadable(fugitive#Find('.git/CHERRY_PICK_HEAD', dir))
|
||||||
let pick_head = fugitive#Execute(['rev-parse', '--short', 'CHERRY_PICK_HEAD', '--'], dir).stdout[0]
|
let pick_head = fugitive#Execute(['rev-parse', '--short', 'CHERRY_PICK_HEAD', '--'], dir).stdout[0]
|
||||||
if !empty(pick_head)
|
call add(sequencing, {'type': 'Rebase', 'status': 'pick', 'commit': pick_head, 'subject': get(readfile(fugitive#Find('.git/MERGE_MSG', dir)), 0, '')})
|
||||||
call add(sequencing, {'type': 'Rebase', 'status': 'pick', 'commit': pick_head, 'subject': merge_msg})
|
|
||||||
endif
|
|
||||||
elseif filereadable(fugitive#Find('.git/REVERT_HEAD', dir))
|
elseif filereadable(fugitive#Find('.git/REVERT_HEAD', dir))
|
||||||
let pick_head = fugitive#Execute(['rev-parse', '--short', 'REVERT_HEAD', '--'], dir).stdout[0]
|
let pick_head = fugitive#Execute(['rev-parse', '--short', 'REVERT_HEAD', '--'], dir).stdout[0]
|
||||||
if !empty(pick_head)
|
call add(sequencing, {'type': 'Rebase', 'status': 'revert', 'commit': pick_head, 'subject': get(readfile(fugitive#Find('.git/MERGE_MSG', dir)), 0, '')})
|
||||||
call add(sequencing, {'type': 'Rebase', 'status': 'revert', 'commit': pick_head, 'subject': merge_msg})
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -2987,7 +2976,7 @@ function! s:StatusRender(stat) abort
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
call s:AddSection(to, 'Rebasing ' . rebasing_head, rebasing)
|
call s:AddSection(to, 'Rebasing ' . rebasing_head, rebasing)
|
||||||
call s:AddSection(to, get(get(sequencing, 0, {}), 'status', '') ==# 'revert' ? 'Reverting' : 'Cherry Picking', sequencing)
|
call s:AddSection(to, get(get(sequencing, 0, {}), 'tous', '') ==# 'revert' ? 'Reverting' : 'Cherry Picking', sequencing)
|
||||||
call s:AddSection(to, 'Untracked', untracked)
|
call s:AddSection(to, 'Untracked', untracked)
|
||||||
call s:AddDiffSection(to, stat, 'Unstaged', unstaged)
|
call s:AddDiffSection(to, stat, 'Unstaged', unstaged)
|
||||||
call s:AddDiffSection(to, stat, 'Staged', staged)
|
call s:AddDiffSection(to, stat, 'Staged', staged)
|
||||||
@@ -5090,7 +5079,17 @@ function! s:StageDelete(lnum1, lnum2, count) abort
|
|||||||
let did_conflict_err = 0
|
let did_conflict_err = 0
|
||||||
let reset_commit = matchstr(getline(a:lnum1), '^Un\w\+ \%(to\| from\) \zs\S\+')
|
let reset_commit = matchstr(getline(a:lnum1), '^Un\w\+ \%(to\| from\) \zs\S\+')
|
||||||
try
|
try
|
||||||
for info in s:Selection(a:lnum1, a:lnum2)
|
let selection=s:Selection(a:lnum1, a:lnum2)
|
||||||
|
if empty(selection)
|
||||||
|
" if empty, check if we were on a section header
|
||||||
|
let first_line = getline(a:lnum1)
|
||||||
|
if first_line =~# '^\(\|Staged\|Unstaged\|Untracked\) ([0-9]*)$'
|
||||||
|
let end_of_section = search('^$', 'n')
|
||||||
|
" if so, select the whole section
|
||||||
|
let selection=s:Selection(a:lnum1+1, end_of_section)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
for info in selection
|
||||||
if empty(info.paths)
|
if empty(info.paths)
|
||||||
if len(info.commit)
|
if len(info.commit)
|
||||||
let reset_commit = info.commit . '^'
|
let reset_commit = info.commit . '^'
|
||||||
@@ -7446,12 +7445,9 @@ function! s:BrowserOpen(url, mods, echo_copy) abort
|
|||||||
else
|
else
|
||||||
if !exists('g:loaded_netrw')
|
if !exists('g:loaded_netrw')
|
||||||
runtime! autoload/netrw.vim
|
runtime! autoload/netrw.vim
|
||||||
runtime! autoload/netrw/os.vim
|
|
||||||
endif
|
endif
|
||||||
if exists('*netrw#Open')
|
if exists('*netrw#Open')
|
||||||
return 'echo '.string(url).'|' . mods . 'call netrw#Open('.string(url).')'
|
return 'echo '.string(url).'|' . mods . 'call netrw#Open('.string(url).')'
|
||||||
elseif exists('*netrw#os#Open')
|
|
||||||
return 'echo '.string(url).'|' . mods . 'call netrw#os#Open('.string(url).')'
|
|
||||||
elseif exists('*netrw#BrowseX')
|
elseif exists('*netrw#BrowseX')
|
||||||
return 'echo '.string(url).'|' . mods . 'call netrw#BrowseX('.string(url).', 0)'
|
return 'echo '.string(url).'|' . mods . 'call netrw#BrowseX('.string(url).', 0)'
|
||||||
elseif exists('*netrw#NetrwBrowseX')
|
elseif exists('*netrw#NetrwBrowseX')
|
||||||
|
|||||||
Reference in New Issue
Block a user