From 297ff51a0df2098ea9fe088e229bcd1318bfe466 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 23 Apr 2018 00:29:31 +0100 Subject: git-debrebase: Run gbp pq export only from (perhaps private) laundered branch When the branch is stitched, gbp pq will descend into both sides of the pseudomerge. This will duplicate patches and be generally bad. So instead, use walk to generate, privately, a laundered version of HEAD, to use to generate the patches. Signed-off-by: Ian Jackson --- git-debrebase | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/git-debrebase b/git-debrebase index 52a06d3..7d5d5bd 100755 --- a/git-debrebase +++ b/git-debrebase @@ -1348,12 +1348,15 @@ sub cmd_conclude () { do_stitch 'quick'; } -sub make_patches_staged ($$) { - my ($bw, $head) = @_; +sub make_patches_staged ($) { + my ($head) = @_; + # Produces the patches that would result from $head if it were + # laundered. + my ($secret_head, $secret_bw, $last_anchor) = walk $head; fresh_workarea(); in_workarea sub { - runcmd @git, qw(checkout -q -b bw), $bw; - runcmd @git, qw(checkout -q -b patch-queue/bw), $head; + runcmd @git, qw(checkout -q -b bw), $secret_bw; + runcmd @git, qw(checkout -q -b patch-queue/bw), $secret_head; runcmd qw(gbp pq export); runcmd @git, qw(add debian/patches); }; @@ -1432,9 +1435,9 @@ sub cmd_convert_to_gbp () { badusage "no arguments allowed" if @ARGV; my $head = get_head(); my (undef, undef, undef, $ffq, $gdrlast) = ffq_prev_branchinfo(); - my ($anchor, $bw) = keycommits $head, 0; + keycommits $head, 0; my $out; - make_patches_staged $bw, $head; + make_patches_staged $head; in_workarea sub { $out = make_commit ['HEAD'], [ 'Commit patch queue (converted from git-debrebase format)', -- cgit v1.2.3