From: Ian Jackson Date: Sat, 11 Aug 2018 20:59:53 +0000 (+0100) Subject: git-debrebase: scrap works properly when it does only rebase --abort X-Git-Tag: archive/debian/6.7~64 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=commitdiff_plain;h=97b08388e773fb6c89817f583ea75dd0098f988a;ds=sidebyside 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 --- diff --git a/debian/changelog b/debian/changelog index cfc7b5c9..28b4811d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ dgit (6.7~) unstable; urgency=medium * git-debrebase: Better (less copious by default) debug output. * git-debrebase: Do not bail making patches if there aren't any. * test suite: Set DEBFULLNAME + * git-debrebase: scrap works properly when it does only rebase --abort. -- diff --git a/git-debrebase b/git-debrebase index a4cafb64..09e0907d 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 ($) {