summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-11 11:51:04 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-11 11:53:35 +0100
commit99068bbe18c8fe83714639cc4ba9adcab5d71e59 (patch)
treec277d815becc8b3463037feeb5173d055017ddf9
parente8ab02477159b5bd91a3566dc28367ed4a910b3a (diff)
git-debrebase: merge: Check that merge resolution is correct
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rwxr-xr-xgit-debrebase11
1 files changed, 10 insertions, 1 deletions
diff --git a/git-debrebase b/git-debrebase
index 2b257dd..3d8d6f3 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -1296,7 +1296,16 @@ sub walk ($;$$$) {
$cl->{MergeInterchangeBaseInfo},
@{ $cl->{Parents} };
$last_anchor = $cl->{MergeBestAnchor};
- # xxx need to check the tree somehow
+ my $check_differs = get_differs $build, $cl->{CommitId};
+ # Breakwater changes which were in each side of the
+ # merge should be in MergeCreateMergedBreakwaters
+ # output. Upstream changes are exactly the result
+ # of merge_series. So the only difference should
+ # be potential laundry results.
+ $nomerge->(sprintf
+ "merge misresolved: tree is not the same (%s %s d.%#x)",
+ $cl->{CommitId}, $build, $check_differs)
+ if $check_differs & ~D_PAT_ADD;
print "Merge resolution successful.\n";
next;
} else {