chiark / gitweb /
git-debrebase: merge: Refactor interchange merge-base computation
[dgit.git] / git-debrebase
index 1e8de52941e10f68a80dc244642925ac0169cbd4..f93adefc49e830a09d8422df95673e42099ff1d2 100755 (executable)
@@ -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->();