diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-08-12 01:25:18 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-08-12 01:45:44 +0100 |
commit | 63ddbee7d0c3bdfaf34cce3950c1a80fb97602c8 (patch) | |
tree | 1f1e25261411913e17210287b5384bb51d954b19 /git-debrebase | |
parent | 6a7d91dc81cbc8922bebc4930991902a9a00da79 (diff) |
git-debrebase: merge: Actually use merge resolutions
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'git-debrebase')
-rwxr-xr-x | git-debrebase | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/git-debrebase b/git-debrebase index 96966ad..f9b6254 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: |