# our own patch identification algorithm?
# this is an alternative strategy
+sub merge_failed ($$) {
+ my ($wrecknotes, $emsg) = @_;
+ my @m;
+ push @m, "Merge resolution failed: $emsg";
+
+ push @m, "See git-debrebase(1) section FAILED MERGES for suggestions.";
+ # ^ xxx this section does not yet exist
+ fail join '', map { "$_\n" } @m;
+}
+
sub mwrecknote ($$$) {
my ($wrecknotes, $reftail, $commitish) = @_;
+ confess unless defined $commitish;
+ printdebug "mwrecknote $reftail $commitish\n";
$wrecknotes->{$reftail} = $commitish;
}
printdebug "pec' $pec\n";
runcmd @git, qw(reset -q --hard), $pec;
$q->{MR}{PEC} = $pec;
- $mwrecknote->("$q->{LeftRight}-patchqueue");
+ $mwrecknote->("$q->{LeftRight}-patchqueue", $pec);
}
# now, because of reverse, we are on $input_q->{MR}{OQC}
runcmd @git, qw(checkout -q -b merge);
};
my $nomerge = sub {
- fail "something useful about failed merge attempt @_ xxx".Dumper($cl);
+ my ($emsg) = @_;
+ merge_failed $cl->{MergeWreckNotes}, $emsg;
};
my $mwrecknote = sub { &mwrecknote($cl->{MergeWreckNotes}, @_); };
for (;;) {
$cl = classify $cur;
+ $cl->{MergeWreckNotes} //= {};
my $ty = $cl->{Type};
my $st = $cl->{SubType};
$prline->("$cl->{CommitId} $cl->{Type}");