nvim: autoload/git: Use difftool for review
The difftool version is actually useful since it populates the quickfix list when the -y argument is not used. This gives rise to a possibility where the quickfix list can be filtered to ignore or look only at files we want. While at it also add the version which opens each changed file in a tab and gives a diffsplit view.
This commit is contained in:
parent
6ae7da9eca
commit
2d17fe00ab
2 changed files with 13 additions and 3 deletions
|
@ -14,6 +14,8 @@ nnoremap <Leader>gF :call git#git_fetch_origin_merge()<CR>
|
||||||
nnoremap <Leader>gg :Git<CR>
|
nnoremap <Leader>gg :Git<CR>
|
||||||
nnoremap <Leader>gh :Git log --grep=
|
nnoremap <Leader>gh :Git log --grep=
|
||||||
nnoremap <Leader>gH :<C-U>Git log -G<C-r><C-w>
|
nnoremap <Leader>gH :<C-U>Git log -G<C-r><C-w>
|
||||||
|
nnoremap <Leader>gk :call git#git_review()<CR>
|
||||||
|
nnoremap <Leader>gK :call git#git_review_fileview()<CR>
|
||||||
nnoremap <Leader>gl :Git log --stat %<CR>
|
nnoremap <Leader>gl :Git log --stat %<CR>
|
||||||
nnoremap <Leader>gL :Git log --stat -n 100<CR>
|
nnoremap <Leader>gL :Git log --stat -n 100<CR>
|
||||||
xnoremap <Leader>gl :<C-U>call git#git_log_range()<CR>
|
xnoremap <Leader>gl :<C-U>call git#git_log_range()<CR>
|
||||||
|
@ -23,7 +25,7 @@ nnoremap <Leader>gM :call git#git_merge_origin()<CR>
|
||||||
nnoremap <Leader>gn :Git branch -m<SPACE>
|
nnoremap <Leader>gn :Git branch -m<SPACE>
|
||||||
nnoremap <Leader>go :call git#git_log_compare()<CR>
|
nnoremap <Leader>go :call git#git_log_compare()<CR>
|
||||||
nnoremap <Leader>gr :call git#git_rebase_origin()<CR>
|
nnoremap <Leader>gr :call git#git_rebase_origin()<CR>
|
||||||
nnoremap <Leader>gR :call git#git_review()<CR>
|
nnoremap <Leader>gR :Git rebase --abort<CR>
|
||||||
nnoremap <Leader>g- :call git#git_stash()<CR>:e<CR>
|
nnoremap <Leader>g- :call git#git_stash()<CR>:e<CR>
|
||||||
nnoremap <Leader>g+ :Git stash pop stash@
|
nnoremap <Leader>g+ :Git stash pop stash@
|
||||||
nnoremap <Leader>gs :Git stash list<CR>
|
nnoremap <Leader>gs :Git stash list<CR>
|
||||||
|
|
|
@ -274,11 +274,19 @@ function! git#git_rebase_origin() abort
|
||||||
execute "Git rebase origin/" . default[3]
|
execute "Git rebase origin/" . default[3]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Opens the output of Git diff main...<current_branch> in a tab for review
|
" Opens the output of Git difftool main...<current_branch> for review
|
||||||
function! git#git_review() abort
|
function! git#git_review() abort
|
||||||
let default = split(trim(system('git symbolic-ref refs/remotes/origin/HEAD')), '/')
|
let default = split(trim(system('git symbolic-ref refs/remotes/origin/HEAD')), '/')
|
||||||
let current = trim(system("git branch --show-current"))
|
let current = trim(system("git branch --show-current"))
|
||||||
execute "Gtabedit | Git diff " . default[3] . "..." . current . "| only"
|
execute "Gtabedit | Git difftool " . default[3] . "..." . current
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Opens the output of Git difftool main...<current_branch> for review. Each
|
||||||
|
" file is opened in a tab.
|
||||||
|
function! git#git_review_fileview() abort
|
||||||
|
let default = split(trim(system('git symbolic-ref refs/remotes/origin/HEAD')), '/')
|
||||||
|
let current = trim(system("git branch --show-current"))
|
||||||
|
execute "Git difftool -y " . default[3] . "..." . current
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Generate a helpful name when using Git stash
|
" Generate a helpful name when using Git stash
|
||||||
|
|
Loading…
Reference in a new issue