X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=git-debrebase;h=41373f3e82f4083291bb74f586ba229303b799ef;hb=e2ef34589c5758d96f492bec534eb9b3398fa960;hp=96966adb3bb07b1c81a90da3427057d7ecc6c6f9;hpb=6a7d91dc81cbc8922bebc4930991902a9a00da79;p=dgit.git diff --git a/git-debrebase b/git-debrebase index 96966adb..41373f3e 100755 --- a/git-debrebase +++ b/git-debrebase @@ -373,9 +373,6 @@ sub gbp_pq_export ($$$) { # xxx general gdr docs highlight forbidden things # xxx general gdr docs list allowable things ? # xxx general gdr docs explicitly forbid some rebase -# -# xxx provide a way for the user to help -# xxx (eg, provide wreckage provide way to continue) # later/rework? # use git-format-patch? @@ -1481,12 +1478,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: