We use @deferred_updates to see if we actually did anything for
--noop-ok purposes.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* 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: 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.
sub cmd_scrap () {
if (currently_rebasing()) {
runcmd @git, qw(rebase --abort);
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();
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;
}
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";
- 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 ($) {
}
sub make_patches_staged ($) {