diff options
Diffstat (limited to 'infra/dgit-repos-policy-debian')
-rwxr-xr-x | infra/dgit-repos-policy-debian | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/infra/dgit-repos-policy-debian b/infra/dgit-repos-policy-debian index ac1ee29..6bdd637 100755 --- a/infra/dgit-repos-policy-debian +++ b/infra/dgit-repos-policy-debian @@ -578,13 +578,23 @@ END delete $row->{taint_id}; } if (defined(my $questionable_head_msg = package_questionable_head_msg())) { + # We would reject this in push. We need to arrange that the + # client will detect this. The object tainting mechanism can + # be (ab)used for this: we tell the client that HEAD is tainted. my $head = git_rev_parse('HEAD~0'); push @$topq, { gitobjtype => 'commit', gitobjid => $head, comment => 'Package is in NEW, need a --deliberately', hint => $questionable_head_msg, - overrides => [], # FIXME + # If the client was told -d-i-q-h, then they can go ahead - + # our push will be placated. If the client was told -d-n-f-f + # then presumably they aren't sending the old HEAD, so there + # won't be a tainted object reachable from their head - so + # -d-n-f-f isn't listed here. After all, this is for controlling + # when the client will regard this as a blocking problem, not + # for advising the user about overriding options. + overrides => [qw(--deliberately-include-questionable-history)] }; } print encode_json $topq, "\n" or die $!; |