chiark / gitweb /
Import: Allow --force to enable/disable
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 24 Oct 2016 01:02:07 +0000 (02:02 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 24 Oct 2016 01:05:08 +0000 (02:05 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
dgit
dgit.1

diff --git a/dgit b/dgit
index 98928e37ac3e0d9a3f18354c5366f367785a4a46..62feb30281dacd5c0f1bb28aa5d109a9f9141c5b 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -76,7 +76,9 @@ our $tagformatfn;
 
 our %forceopts = map { $_=>0 }
     qw(unrepresentable unsupported-source-format
-       dsc-changes-mismatch);
+       dsc-changes-mismatch
+       import-gitapply-absurd
+       import-gitapply-no-absurd);
 
 our %format_ok = map { $_=>1 } ("1.0","3.0 (native)","3.0 (quilt)");
 
@@ -1976,9 +1978,15 @@ END
                $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));
diff --git a/dgit.1 b/dgit.1
index f3e87feee095f90238ad2c97875ce70865b18f69..cc10695a636897e045ad2fc1cbd376187cca989d 100644 (file)
--- a/dgit.1
+++ b/dgit.1
@@ -744,6 +744,12 @@ dgit will probably mishandle it.
 .B --force-dsc-changes-mismatch
 Do not check whether .dsc and .changes match.
 The archive will probably reject your upload.
+.TP
+.BR --force-import-gitapply-absurd " | " --force-import-gitapply-no-absurd
+Force on or off the use of the absurd git-apply emulation
+when running gbp pq import
+when importing a package from a .dsc.
+See Debian bug #841867.
 .SH WORKFLOW - SIMPLE
 It is always possible with dgit to clone or fetch a package, make
 changes in git (using git-commit) on the suite branch