our @deferred_updates;
our @deferred_update_messages;
+sub merge_wreckage_cleaning ($) {
+ my ($updates) = @_;
+ git_for_each_ref("$wrecknoteprefix/*", sub {
+ my ($objid,$objtype,$fullrefname,$reftail) = @_;
+ push @$updates, "delete $fullrefname";
+ });
+}
+
sub all_snags_summarised () {
$snags_forced + $snags_tripped == $snags_summarised;
}
confess 'dangerous internal error' unless all_snags_summarised();
+ merge_wreckage_cleaning \@deferred_updates;
run_ref_updates_now $mrest, \@deferred_updates;
print $_, "\n" foreach @deferred_update_messages;
if ($opt_save_wreckage) {
my @updates;
- git_for_each_ref("$wrecknoteprefix/*", sub {
- my ($objid,$objtype,$fullrefname,$reftail) = @_;
- push @updates, "delete $fullrefname";
- });
+ merge_wreckage_cleaning \@updates;
keys %$wrecknotes;
while (my ($k,$v) = each %$wrecknotes) {
push @updates, "create $wrecknoteprefix/$k $v";