our $tagformatfn;
our %forceopts = map { $_=>0 }
- qw(unrepresentable unsupported-source-format);
+ qw(unrepresentable unsupported-source-format
+ dsc-changes-mismatch
+ import-gitapply-absurd
+ import-gitapply-no-absurd);
our %format_ok = map { $_=>1 } ("1.0","3.0 (native)","3.0 (quilt)");
print STDERR "warning: overriding problem due to --force:\n". $msg;
}
+sub forceing ($) {
+ my ($forceoptsl) = @_;
+ my @got = grep { $forceopts{$_} } @$forceoptsl;
+ return 0 unless @got;
+ print STDERR
+ "warning: skipping checks or functionality due to --force-$got[0]\n";
+}
+
sub no_such_package () {
print STDERR "$us: package $package does not exist in suite $isuite\n";
exit 4;
$path = "$absurdity:$path";
progress "$us: trying slow absurd-git-apply...";
rename "../../gbp-pq-output","../../gbp-pq-output.0"
+ or $!==ENOENT
or die $!;
}
eval {
+ die "forbid absurd git-apply\n" if $use_absurd
+ && forceing [qw(import-gitapply-no-absurd)];
+ die "only absurd git-apply!\n" if !$use_absurd
+ && forceing [qw(import-gitapply-absurd)];
+
local $ENV{PATH} = $path if $use_absurd;
my @showcmd = (gbp_pq, qw(import));
# Check that changes and .dsc agree enough
$changesfile =~ m{[^/]*$};
- files_compare_inputs($dsc, parsecontrol($changesfile,$&));
+ files_compare_inputs($dsc, parsecontrol($changesfile,$&))
+ unless forceing [qw(dsc-changes-mismatch)];
# Checks complete, we're going to try and go ahead:
push @ropts, $&;
$forceopts{$1} = 1;
$_='';
+ } elsif (m/^--force-/) {
+ print STDERR
+ "$us: warning: ignoring unknown force option $_\n";
+ $_='';
} elsif (m/^--dgit-tag-format=(old|new)$/s) {
# undocumented, for testing
push @ropts, $_;