X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=git-debrebase;h=771410ef1350443ee703f45434e86fd8ae2c6e74;hp=1e8de52941e10f68a80dc244642925ac0169cbd4;hb=1d38a8e35e08d9a37393a809f8de4492759f4be3;hpb=3522f98a237df1650a2361f3545e36396bc6c797 diff --git a/git-debrebase b/git-debrebase index 1e8de529..771410ef 100755 --- a/git-debrebase +++ b/git-debrebase @@ -1235,12 +1235,22 @@ sub walk ($;$$$) { # breakwater merge base as an ancestor. my @ibs = - grep { is_fast_fwd $bwb, $_ } grep /./, split /\n/, cmdoutput @ibcmd; - my ($ib) = @ibs - or $nomerge->("no suitable interchange merge base"); + + @ibs or confess 'internal error, expected anchor at least ?'; + + my $ib; + foreach my $tibix (0..$#ibs) { + my $tib = $ibs[$tibix]; + my $ff = is_fast_fwd $bwb, $tib; + next unless $ff; + next if $ib; + $ib = $tib; + } + + $ib or $nomerge->("no suitable interchange merge base"); $prline->(" VanillaMerge Base"); $prprdelim->(); @@ -1254,6 +1264,7 @@ sub walk ($;$$$) { or $nomerge->("interchange merge-base ($ib)'s". " breakwater ($bbw)". " != breakwaters' merge-base ($bwb)"); + grep { $_->{Anchor} eq $ibinfo->{Anchor} } @$ps or $nomerge->("interchange merge-base ($ib)'s". " anchor ($ibinfo->{SeriesBase})". @@ -1261,7 +1272,6 @@ sub walk ($;$$$) { (join ' ', map { $_->{Anchor} } @$ps). ")"); - $cl->{MergeInterchangeBaseInfo} = $ibinfo; $cl->{MergeBestAnchor} = $best_anchor; push @brw_cl, {