X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=git-debrebase;h=0dea5d5e1f5f1945d969787818d25d7f302057ed;hp=0e365cd600c9b0224330d9a586b0605c8a39ae94;hb=a31d506d5ba29726b661ecd40092c8fbebfa865f;hpb=3265f60dd2ee4fe23005f62d289f7714f329d043 diff --git a/git-debrebase b/git-debrebase index 0e365cd6..0dea5d5e 100755 --- a/git-debrebase +++ b/git-debrebase @@ -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,7 @@ sub merge_series ($$$;@) { # $prereq{}{} exists or not (even later) - my $result; + my $merged_pq; my $mwrecknote = sub { &mwrecknote($wrecknotes, @_); }; @@ -592,9 +594,21 @@ 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); + }; + 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; merge_attempt_cmd($wrecknotes, qw(gbp pq import)); @@ -603,7 +617,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 +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},