chiark / gitweb /
git-debrebase: merge: Split off merge_series_patchqueue_convert
[dgit.git] / git-debrebase
index 18bc21f0dbb965b48f4aebc4c8a07d7e67e4ba3e..0dea5d5e1f5f1945d969787818d25d7f302057ed 100755 (executable)
@@ -428,6 +428,8 @@ sub merge_attempt_cmd {
     }
 }
 
+sub merge_series_patchqueue_convert ($$$);
+
 sub merge_series ($$$;@) {
     my ($newbase, $wrecknotes, $base_q, @input_qs) = @_;
     # $base_q{SeriesBase}  $input_qs[]{SeriesBase}
@@ -452,7 +454,6 @@ sub merge_series ($$$;@) {
     # $prereq{<patch filename>}{<possible prereq}  exists or not (later)
     # $prereq{<patch filename>}               exists or not (even later)
 
-    my $result;
     my $merged_pq;
 
     my $mwrecknote = sub { &mwrecknote($wrecknotes, @_); };
@@ -595,7 +596,17 @@ sub merge_series ($$$;@) {
        runcmd @git, qw(commit --quiet -m), 'Merged patch queue form';
        $merged_pq = git_rev_parse 'HEAD';
        $mwrecknote->('merged-patchqueue', $merged_pq);
+    };
+    return merge_series_patchqueue_convert
+           $wrecknotes, $newbase, $merged_pq;
+}
 
+sub merge_series_patchqueue_convert ($$$) {
+    my ($wrecknotes, $newbase, $merged_pq) = @_;
+
+    my $result;
+    in_workarea sub {
+       playtree_setup();
        printdebug "merge_series series gbp pq import\n";
        runcmd @git, qw(checkout -q -b mergec), $merged_pq;
 
@@ -1470,6 +1481,7 @@ sub walk ($;$$$) {
                @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},