return $unknown->("complex merge");
}
-sub breakwater_of ($) {
- my ($head) = @_; # must be laundered
+sub breakwater_of ($;$) {
+ my ($head, $unclean_fproblem_tag) = @_;
+ # $head should be laundered; if not, $unclean_fproblem_tag controls:
+ # if falseish, calls fail; otherwise, calls fproblem and returns undef
my $breakwater;
my $unclean = sub {
my ($why) = @_;
- fail "branch needs laundering (run git-debrebase): $why";
+ my $m = "branch needs laundering (run git-debrebase): $why";
+ fail $m unless $unclean_fproblem_tag;
+ fproblem $unclean_fproblem_tag, $m;
+ $breakwater = undef;
+ no warnings qw(exiting);
+ last;
};
for (;;) {
my $cl = classify $head;