summaryrefslogtreecommitdiff
path: root/git-debrebase
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-11 16:13:34 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-11 16:17:06 +0100
commita1a9073c083036f1c3fd024c3b96ecbccd6b424c (patch)
tree557b73560481fa40c5bc09170e2db1f9e9a1e15d /git-debrebase
parent3522f98a237df1650a2361f3545e36396bc6c797 (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-xgit-debrebase16
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->();