From 60eac8c97457af5a96eb06ad4b564e4c813d806e Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Fri, 5 Apr 2019 21:01:43 -0400 Subject: [PATCH] Call :Gcommit from :Grebase --continue --- autoload/fugitive.vim | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/autoload/fugitive.vim b/autoload/fugitive.vim index 6d3b246..5f7884a 100644 --- a/autoload/fugitive.vim +++ b/autoload/fugitive.vim @@ -2848,6 +2848,16 @@ function! s:Merge(cmd, bang, mods, args, ...) abort return s:RebaseEdit(mods . 'split', dir) elseif a:cmd =~# '^rebase' && ' '.a:args =~# ' --edit-todo' && filereadable(dir . '/rebase-merge/git-rebase-todo') return s:RebaseEdit(mods . 'split', dir) + elseif a:cmd =~# '^rebase' && ' '.a:args =~# ' --continue' && !a:0 + let rdir = dir . '/rebase-merge' + call system(fugitive#Prepare(dir, 'diff-index', '--cached', '--quiet', 'HEAD', '--')) + if v:shell_error && isdirectory(rdir) + if getfsize(rdir . '/amend') <= 0 + return 'exe ' . string(mods . 'Gcommit -n -F ' . s:shellesc(dir . '/rebase-merge/message') . ' -e') . '|let b:fugitive_commit_rebase = 1' + elseif readfile(rdir . '/amend')[0] ==# fugitive#Head(-1, dir) + return 'exe ' . string(mods . 'Gcommit --amend -n -F ' . s:shellesc(dir . '/rebase-merge/message') . ' -e') . '|let b:fugitive_commit_rebase = 1' + endif + endif endif let [mp, efm] = [&l:mp, &l:efm] let had_merge_msg = filereadable(dir . '/MERGE_MSG')