diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-08-11 16:13:34 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-08-11 16:17:06 +0100 |
commit | a1a9073c083036f1c3fd024c3b96ecbccd6b424c (patch) | |
tree | 557b73560481fa40c5bc09170e2db1f9e9a1e15d /git-debrebase | |
parent | 3522f98a237df1650a2361f3545e36396bc6c797 (diff) |
git-debrebase: merge: Refactor interchange merge-base computation
We need to unpack this a bit so that we can insert some wrecknote
stuff, which will come in a moment.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'git-debrebase')
-rwxr-xr-x | git-debrebase | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/git-debrebase b/git-debrebase index 1e8de52..f93adef 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->(); |