chiark / gitweb /
git-debrebase: merge: Record the new-base in the wreckage.
[dgit.git] / git-debrebase
index 0e365cd600c9b0224330d9a586b0605c8a39ae94..910e444df28aca907c99b7ac56c63cd32f65ccf7 100755 (executable)
@@ -453,6 +453,7 @@ sub merge_series ($$$;@) {
     # $prereq{<patch filename>}               exists or not (even later)
 
     my $result;
+    my $merged_pq;
 
     my $mwrecknote = sub { &mwrecknote($wrecknotes, @_); };
 
@@ -592,9 +593,11 @@ sub merge_series ($$$;@) {
 
        runcmd @git, qw(add), $seriesfile;
        runcmd @git, qw(commit --quiet -m), 'Merged patch queue form';
-       $mwrecknote->('merged-patchqueue', git_rev_parse 'HEAD');
+       $merged_pq = git_rev_parse 'HEAD';
+       $mwrecknote->('merged-patchqueue', $merged_pq);
 
        printdebug "merge_series series gbp pq import\n";
+       runcmd @git, qw(checkout -q -b mergec), $merged_pq;
 
        merge_attempt_cmd($wrecknotes, qw(gbp pq import));
 
@@ -603,7 +606,7 @@ sub merge_series ($$$;@) {
 
        printdebug "merge_series series ok, building...\n";
        my $build = $newbase;
-       my @lcmd = (@git, qw(rev-list --reverse merge..patch-queue/merge));
+       my @lcmd = (@git, qw(rev-list --reverse mergec..patch-queue/mergec));
        foreach my $c (grep /./, split /\n/, cmdoutput @lcmd) {
            my $commit = git_cat_file $c, 'commit';
            printdebug "merge_series series ok, building $c\n";
@@ -1467,6 +1470,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},