X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=git-debrebase;h=d101742114246a8bd61f63c102bad234252b1eac;hp=830cfd5ea978586b68a6e995936bcf68e9dac7f7;hb=f8b71fe47b3216f14c31c3c2c9075ce32c0cc975;hpb=27b7f56727ea182349a38136977553fc5a256394 diff --git a/git-debrebase b/git-debrebase index 830cfd5e..d1017421 100755 --- a/git-debrebase +++ b/git-debrebase @@ -344,7 +344,7 @@ sub gbp_pq_export ($$$) { { local ($!,$?); copy('../gbp-pq-err', \*STDERR); } failedcmd @gbp_cmd; } - runcmd @git, qw(add -f debian/patches); + runcmd @git, qw(add -f debian/patches) if stat_exists 'debian/patches'; } @@ -388,6 +388,11 @@ sub merge_series ($$$;@) { my $result; + my $mwrecknote = sub { + my ($reftail, $commitish) = @_; + $wrecknotes->{$reftail} = $commitish; + }; + local $workarea = fresh_playground "$playprefix/merge"; my $seriesfile = "debian/patches/series"; in_workarea sub { @@ -418,7 +423,7 @@ sub merge_series ($$$;@) { " $q->{SeriesTip}]" ]; printdebug "merge_series pec $pec "; - runcmd @git, qw(rm -q --cached), $seriesfile; + runcmd @git, qw(rm -q --ignore-unmatch --cached), $seriesfile; $pec = make_commit [ $pec ], [ "Drop series file from $s to avoid merge trouble", "[git-debrebase merge-innards patch-queue prep:". @@ -441,6 +446,7 @@ sub merge_series ($$$;@) { printdebug "pec' $pec\n"; runcmd @git, qw(reset -q --hard), $pec; $q->{MR}{PEC} = $pec; + $mwrecknote->("$q->{LeftRight}-patchqueue"); } # now, because of reverse, we are on $input_q->{MR}{OQC} runcmd @git, qw(checkout -q -b merge); @@ -522,7 +528,8 @@ sub merge_series ($$$;@) { } runcmd @git, qw(add), $seriesfile; - runcmd @git, qw(commit --quiet -m), 'Merged series'; + runcmd @git, qw(commit --quiet -m), 'Merged patch queue form'; + $mwrecknote->('merged-patchqueue', git_rev_parse 'HEAD'); printdebug "merge_series series gbp pq import\n"; runcmd qw(gbp pq import); @@ -546,14 +553,17 @@ sub merge_series ($$$;@) { $build = cmdoutput @git, qw(hash-object -w -t commit ../mcommit); } $result = $build; + $mwrecknote->('merged-result', $result); + runcmd @git, qw(update-ref refs/heads/result), $result; runcmd @git, qw(checkout -q -b debug); runcmd @git, qw(commit --allow-empty -q -m M-INDEX); runcmd @git, qw(add .); runcmd @git, qw(commit --allow-empty -q -m M-WORKTREE); - printdebug sprintf "merge_series done debug=%s\n", - git_rev_parse 'HEAD'; + my $mdebug = git_rev_parse 'HEAD'; + printdebug sprintf "merge_series done debug=%s\n", $mdebug; + $mwrecknote->('merged-debug', $mdebug); }; printdebug "merge_series returns $result\n"; return $result; @@ -1291,7 +1301,9 @@ sub walk ($;$$$) { my $ibinfo = { SeriesTip => $btip, SeriesBase => $bbw, - Anchor => $banchor }; + Anchor => $banchor, + LeftRight => 'mergebase' }; + $bbw eq $bwb or $nomerge->("interchange merge-base ($ib)'s". " breakwater ($bbw)".