chiark / gitweb /
git-debrebase: merge: Use a fresh branch and check out again
[dgit.git] / git-debrebase
index 0e365cd600c9b0224330d9a586b0605c8a39ae94..18bc21f0dbb965b48f4aebc4c8a07d7e67e4ba3e 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";