diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-04-22 23:27:26 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-06-16 22:40:13 +0100 |
commit | acec8e4b8dc36601d94159bdac169b8f13e64913 (patch) | |
tree | e41a7b5e694de28438998655a65fe789f37c26c7 /git-debrebase | |
parent | b33a6ea64a28a1122d75ce3a0d4808211e0734d3 (diff) |
git-debrebase: Defend against missing snags_maybe_bail calls
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>
Diffstat (limited to 'git-debrebase')
-rwxr-xr-x | git-debrebase | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/git-debrebase b/git-debrebase index 6259dfe..6211fb6 100755 --- a/git-debrebase +++ b/git-debrebase @@ -99,12 +99,18 @@ sub fresh_workarea () { 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 $!; @@ -227,8 +233,6 @@ sub make_commit ($$) { } our @snag_force_opts; -our $snags_forced; -our $snags_tripped; sub snag ($$) { my ($tag,$msg) = @_; if (grep { $_ eq $tag } @snag_force_opts) { @@ -241,16 +245,19 @@ sub snag ($$) { } 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)", |