This is mostly for the benefit of dgit(1), which wants to know whether
to run gdr to do quilt fixup.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
fproblems_maybe_bail();
push @deferred_updates, "update $ffq_prev $currentval $git_null_obj";
fproblems_maybe_bail();
push @deferred_updates, "update $ffq_prev $currentval $git_null_obj";
+ push @deferred_updates, "delete $drlast";
push @deferred_update_messages, "Recorded current head for preservation";
return ('deferred', undef);
}
push @deferred_update_messages, "Recorded current head for preservation";
return ('deferred', undef);
}
# ffq-prev is ahead of us, and the only tree changes it has
# are possibly addition of things in debian/patches/.
# Just wind forwards rather than making a pointless pseudomerge.
# ffq-prev is ahead of us, and the only tree changes it has
# are possibly addition of things in debian/patches/.
# Just wind forwards rather than making a pointless pseudomerge.
+ push @deferred_updates, "update $drlast $prev $git_null_obj";
update_head_checkout $old_head, $prev, "stitch (fast forward)";
return;
}
update_head_checkout $old_head, $prev, "stitch (fast forward)";
return;
}
'Declare fast forward / record previous work',
"[git-debrebase pseudomerge: stitch$prose]",
];
'Declare fast forward / record previous work',
"[git-debrebase pseudomerge: stitch$prose]",
];
+ push @deferred_updates, "update $drlast $new_head $git_null_obj";
update_head $old_head, $new_head, "stitch";
}
update_head $old_head, $new_head, "stitch";
}
};
if (defined $ffq) {
push @deferred_updates, "delete $ffq";
};
if (defined $ffq) {
push @deferred_updates, "delete $ffq";
+ push @deferred_updates, "delete $drlast";
}
update_head_checkout $head, $out, "convert to gbp (v0)";
print <<END or die $!;
}
update_head_checkout $head, $out, "convert to gbp (v0)";
print <<END or die $!;
in which case the unstitched branch is fast forward
from the interchange branch and no pseudomerge is needed.
in which case the unstitched branch is fast forward
from the interchange branch and no pseudomerge is needed.
+When ffq-prev is not present,
+C<refs/debrebase-last/B> records some ancestor of refs/B,
+(usually, the result of last stitch).
+This can be used to quickly determine whether refs/B
+is being maintained in git-debrebase form.
+
=head1 OTHER MERGES
Note that the representation described here does not permit
=head1 OTHER MERGES
Note that the representation described here does not permit
=item Launder branch
Record the previous tip in ffq-prev,
=item Launder branch
Record the previous tip in ffq-prev,
-if we were stitched before.
+if we were stitched before
+(and delete debrebase-last).
Reorganise the current branch so that the packaging
changes come first,
Reorganise the current branch so that the packaging
changes come first,
whose contributing parent to is the unstitched branch
and
whose overwritten parent is ffq-prev,
whose contributing parent to is the unstitched branch
and
whose overwritten parent is ffq-prev,
-consuming ffq-prev in the process.
+consuming ffq-prev in the process
+(and writing debrebase-last instead).
Ideally the contributing parent would be a laundered branch,
or perhaps a laundered branch with a quilt patch addition commit.
Ideally the contributing parent would be a laundered branch,
or perhaps a laundered branch with a quilt patch addition commit.