X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=git-debrebase;h=213728023f249305eb873722d305f3168a1cb0c4;hp=589fa901af95f5b1158f850b205e9defc20331ac;hb=eec3f8c097bdb3f03499c9228f42d5cd2ce65786;hpb=332806a67a034c88c2884b516ce2aaf8b317dd25 diff --git a/git-debrebase b/git-debrebase index 589fa901..21372802 100755 --- a/git-debrebase +++ b/git-debrebase @@ -51,7 +51,7 @@ See git-debrebase(1), git-debrebase(5), dgit-maint-debrebase(7) (in dgit). END our ($opt_force, $opt_noop_ok, @opt_anchors); -our ($opt_defaultcmd_interactive, $opt_save_wreckage); +our ($opt_defaultcmd_interactive); our $us = qw(git-debrebase); @@ -154,6 +154,14 @@ our $snags_summarised = 0; our @deferred_updates; our @deferred_update_messages; +sub merge_wreckage_cleaning ($) { + my ($updates) = @_; + git_for_each_ref("$wrecknoteprefix/*", sub { + my ($objid,$objtype,$fullrefname,$reftail) = @_; + push @$updates, "delete $fullrefname"; + }); +} + sub all_snags_summarised () { $snags_forced + $snags_tripped == $snags_summarised; } @@ -162,6 +170,7 @@ sub run_deferred_updates ($) { confess 'dangerous internal error' unless all_snags_summarised(); + merge_wreckage_cleaning \@deferred_updates; run_ref_updates_now $mrest, \@deferred_updates; print $_, "\n" foreach @deferred_update_messages; @@ -375,25 +384,17 @@ sub merge_failed ($$) { my @m; push @m, "Merge resolution failed: $emsg"; - $opt_save_wreckage //= do { - my $c = cfg 'git-debrebase.merge.save-wreckage', 1; - # ^ xxx documentation - $c && $c =~ m/^[1ty]/; - }; + changedir $maindir; - if ($opt_save_wreckage) { - my @updates; - git_for_each_ref("$wrecknoteprefix/*", sub { - my ($objid,$objtype,$fullrefname,$reftail) = @_; - push @updates, "delete $fullrefname"; - }); - keys %$wrecknotes; - while (my ($k,$v) = each %$wrecknotes) { - push @updates, "create $wrecknoteprefix/$k $v"; - } - run_ref_updates_now "merge failed", \@updates; - push @m, "Wreckage left in $wrecknoteprefix/* as requested."; + my @updates; + merge_wreckage_cleaning \@updates; + keys %$wrecknotes; + while (my ($k,$v) = each %$wrecknotes) { + push @updates, "create $wrecknoteprefix/$k $v"; } + run_ref_updates_now "merge failed", \@updates; + push @m, "Wreckage left in $wrecknoteprefix/*."; + push @m, "See git-debrebase(1) section FAILED MERGES for suggestions."; # ^ xxx this section does not yet exist fail join '', map { "$_\n" } @m; @@ -2629,7 +2630,6 @@ getoptions_main 'anchor=s' => \@opt_anchors, '--dgit=s' => \($dgit[0]), 'force!', - '--save-wreckage', \$opt_save_wreckage, '-i:s' => sub { my ($opt,$val) = @_; badusage "git-debrebase: no cuddling to -i for git-rebase"