summaryrefslogtreecommitdiff
path: root/git-debrebase
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-11 13:47:59 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-11 15:36:23 +0100
commit14940a67eb1525d69a8dade2777f8cd11200307c (patch)
tree23f9c57e34d02400ecc9f469496f457f709f0a55 /git-debrebase
parent965fdfed6e03d38b273baf1fa282a3d2ef828484 (diff)
git-debrebase: merge: Avoid asking user to re-merge debian/
If it had conflicts, they will have been resolved earlier and we can just take that resolution. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'git-debrebase')
-rwxr-xr-xgit-debrebase18
1 files changed, 15 insertions, 3 deletions
diff --git a/git-debrebase b/git-debrebase
index 6d51a90..9c44419 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -395,10 +395,8 @@ sub merge_series ($$;@) {
foreach my $q ($base_q, reverse @input_qs) {
my $s = $q->{MR}{S};
gbp_pq_export "p-$s", $q->{SeriesBase}, $q->{SeriesTip};
- # xxx avoid trying to merge debian/ again here, by
- # always using debian/ from newbase
+ my @earlier;
if (open S, $seriesfile) {
- my @earlier;
while (my $patch = <S>) {
chomp $patch or die $!;
$prereq{$patch} //= {};
@@ -426,6 +424,20 @@ sub merge_series ($$;@) {
"[git-debrebase merge-innards patch-queue prep:".
" $q->{SeriesTip}]"
];
+
+ read_tree_debian $newbase;
+ if (@earlier) {
+ read_tree_subdir 'debian/patches', "$pec:debian/patches";
+ } else {
+ rm_subdir_cached 'debian/patches';
+ }
+ $pec = make_commit [ $pec ], [
+ "Update debian/ (excluding patches) to final to avoid re-merging",
+ "debian/ was already merged and we need to just take that.",
+ "[git-debrebase merge-innards patch-queue packaging:".
+ " $q->{SeriesTip}]"
+ ];
+
printdebug "pec' $pec\n";
runcmd @git, qw(reset -q --hard), $pec;
$q->{MR}{PEC} = $pec;