From 97b08388e773fb6c89817f583ea75dd0098f988a Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 11 Aug 2018 21:59:53 +0100 Subject: git-debrebase: scrap works properly when it does only rebase --abort We use @deferred_updates to see if we actually did anything for --noop-ok purposes. Signed-off-by: Ian Jackson --- git-debrebase | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'git-debrebase') diff --git a/git-debrebase b/git-debrebase index a4cafb6..09e0907 100755 --- a/git-debrebase +++ b/git-debrebase @@ -2204,19 +2204,28 @@ sub cmd_conclude () { sub cmd_scrap () { if (currently_rebasing()) { runcmd @git, qw(rebase --abort); + push @deferred_updates, 'verify HEAD HEAD'; + # noop, but stops us complaining that scrap was a noop } + badusage "no arguments allowed" if @ARGV; my ($ffq_prev, $gdrlast, $ffq_prev_commitish) = ffq_prev_info(); - if (!$ffq_prev_commitish) { + my $scrapping_head; + if ($ffq_prev_commitish) { + $scrapping_head = get_head(); + push @deferred_updates, + "update $gdrlast $ffq_prev_commitish $git_null_obj", + "update $ffq_prev $git_null_obj $ffq_prev_commitish"; + } + if (!@deferred_updates) { fail "No ongoing git-debrebase session." unless $opt_noop_ok; finish 0; } - my $scrapping_head = get_head(); - badusage "no arguments allowed" if @ARGV; - push @deferred_updates, - "update $gdrlast $ffq_prev_commitish $git_null_obj", - "update $ffq_prev $git_null_obj $ffq_prev_commitish"; snags_maybe_bail(); - update_head_checkout $scrapping_head, $ffq_prev_commitish, "scrap"; + if ($scrapping_head) { + update_head_checkout $scrapping_head, $ffq_prev_commitish, "scrap"; + } else { + run_deferred_updates "scrap"; + } } sub make_patches_staged ($) { -- cgit v1.2.3