Almost the only thing gdr does as an output is to update HEAD and
other refs. That's done with run_deferred_updates. So, there,
check that (i) we have called snags_maybe_bail at least once;
(ii) we have not had any snags since.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
in_workarea sub { playtree_setup };
}
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) = @_;
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 $!;
my @upd_cmd = (@git, qw(update-ref --stdin -m), "debrebase: $mrest");
debugcmd '>|', @upd_cmd;
open U, "|-", @upd_cmd or die $!;
-our $snags_forced;
-our $snags_tripped;
sub snag ($$) {
my ($tag,$msg) = @_;
if (grep { $_ eq $tag } @snag_force_opts) {
sub snag ($$) {
my ($tag,$msg) = @_;
if (grep { $_ eq $tag } @snag_force_opts) {
}
sub snags_maybe_bail () {
}
sub snags_maybe_bail () {
if ($snags_forced) {
printf STDERR
"%s: snags: %d overriden by individual -f options\n",
$us, $snags_forced;
if ($snags_forced) {
printf STDERR
"%s: snags: %d overriden by individual -f options\n",
$us, $snags_forced;
}
if ($snags_tripped) {
if ($opt_force) {
printf STDERR
"%s: snags: %d overriden by global --force\n",
$us, $snags_tripped;
}
if ($snags_tripped) {
if ($opt_force) {
printf STDERR
"%s: snags: %d overriden by global --force\n",
$us, $snags_tripped;
} else {
fail sprintf
"%s: snags: %d blockers (you could -f<tag>, or --force)",
} else {
fail sprintf
"%s: snags: %d blockers (you could -f<tag>, or --force)",