in_workarea sub { playtree_setup };
}
+our $snags_forced;
+our $snags_tripped;
+our $snags_checked;
our @deferred_updates;
our @deferred_update_messages;
sub run_deferred_updates ($) {
my ($mrest) = @_;
+ confess 'dangerous internal error' if
+ !$snags_checked || $snags_tripped || $snags_forced;
+
my @upd_cmd = (@git, qw(update-ref --stdin -m), "debrebase: $mrest");
debugcmd '>|', @upd_cmd;
open U, "|-", @upd_cmd or die $!;
}
our @snag_force_opts;
-our $snags_forced;
-our $snags_tripped;
sub snag ($$) {
my ($tag,$msg) = @_;
if (grep { $_ eq $tag } @snag_force_opts) {
}
sub snags_maybe_bail () {
+ $snags_checked++;
if ($snags_forced) {
printf STDERR
"%s: snags: %d overriden by individual -f options\n",
$us, $snags_forced;
+ $snags_forced=0;
}
if ($snags_tripped) {
if ($opt_force) {
printf STDERR
"%s: snags: %d overriden by global --force\n",
$us, $snags_tripped;
+ $snags_tripped=0;
} else {
fail sprintf
"%s: snags: %d blockers (you could -f<tag>, or --force)",
my $old = get_head();
record_ffq_auto();
my ($tip,$breakwater) = walk $old;
+ snags_maybe_bail();
update_head_postlaunder $old, $tip, $reflogmsg;
return ($tip,$breakwater);
}
my $dangling_head = get_head();
keycommits $dangling_head, $unclean,$unclean,$unclean;
+ snags_maybe_bail();
stitch($dangling_head, $ffq_prev, $gdrlast, $ffq_prev_commitish, $prose);
}
sub cmd_quick () {
badusage "no arguments allowed" if @ARGV;
do_launder_head 'launder for git-debrebase quick';
- do_stitch 'quick', \&snag;
+ do_stitch 'quick';
}
sub cmd_conclude () {
badusage "no arguments allowed" if @ARGV;
do_launder_head 'launder for git-debrebase quick';
- do_stitch 'quick', \&snag;
+ do_stitch 'quick';
}
sub cmd_convert_from_gbp () {
push @deferred_updates, "delete $ffq";
push @deferred_updates, "delete $gdrlast";
}
+ snags_maybe_bail();
update_head_checkout $head, $out, "convert to gbp (v0)";
print <<END or die $!;
git-debrebase: converted to git-buildpackage branch format