From 63ddbee7d0c3bdfaf34cce3950c1a80fb97602c8 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 12 Aug 2018 01:25:18 +0100 Subject: [PATCH] git-debrebase: merge: Actually use merge resolutions Signed-off-by: Ian Jackson --- git-debrebase | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/git-debrebase b/git-debrebase index 96966adb..f9b6254d 100755 --- a/git-debrebase +++ b/git-debrebase @@ -1481,12 +1481,20 @@ sub walk ($;$$$) { read_tree_debian($cltree); @parents = map { $_->{Breakwater} } @{ $cl->{Parents} }; } elsif ($method eq 'MergeMergeSeries') { - print "Running merge resolution for $cl->{CommitId}...\n"; - $mwrecknote->('new-base', $build); - $build = merge_series - $build, $cl->{MergeWreckNotes}, - $cl->{MergeInterchangeBaseInfo}, - @{ $cl->{Parents} }; + my $cachehit = reflog_cache_lookup + $merge_cache_ref, "vanilla-merge $cl->{CommitId}"; + if ($cachehit) { + print "Using supplied resolution for $cl->{CommitId}...\n"; + $build = $cachehit; + $mwrecknote->('cached-resolution', $build); + } else { + print "Running merge resolution for $cl->{CommitId}...\n"; + $mwrecknote->('new-base', $build); + $build = merge_series + $build, $cl->{MergeWreckNotes}, + $cl->{MergeInterchangeBaseInfo}, + @{ $cl->{Parents} }; + } $last_anchor = $cl->{MergeBestAnchor}; # Check for mismerges: -- 2.30.2