chiark / gitweb /
Reject (rather than ignoring) further options merged witht -wn, -wg, -wd.
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 972a839bb0be2a98b6a4e1e5d958dfa822a2f01b..7cbef4e75fb218d2e55a69fa3e1e8ff76c535c3e 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -48,13 +48,12 @@ our $changesfile;
 our $buildproductsdir = '..';
 our $new_package = 0;
 our $ignoredirty = 0;
-our $noquilt = 0;
 our $rmonerror = 1;
 our $existing_package = 'dpkg';
 our $cleanmode = 'dpkg-source';
 our $changes_since_version;
 our $quilt_mode;
-our $quilt_modes_re = 'linear|smash|auto|nofix';
+our $quilt_modes_re = 'linear|smash|auto|nofix|nocheck';
 our $we_are_responder;
 our $initiator_tempdir;
 
@@ -1414,6 +1413,7 @@ sub clone ($) {
     }
     fetch_from_archive() or no_such_package;
     my $vcsgiturl = $dsc->{'Vcs-Git'};
+    $vcsgiturl =~ s/\s+-b\s+\S+//g;
     if (length $vcsgiturl) {
        runcmd @git, qw(remote add vcs-git), $vcsgiturl;
     }
@@ -1487,7 +1487,7 @@ sub get_source_format () {
 sub madformat ($) {
     my ($format) = @_;
     return 0 unless $format eq '3.0 (quilt)';
-    if ($noquilt) {
+    if ($quilt_mode eq 'nocheck') {
        progress "Not doing any fixup of \`$format' due to --no-quilt-fixup";
        return 0;
     }
@@ -2683,7 +2683,7 @@ sub parseopts () {
                $ignoredirty = 1;
            } elsif (m/^--no-quilt-fixup$/s) {
                push @ropts, $_;
-               $noquilt = 1;
+               $quilt_mode = 'nocheck';
            } elsif (m/^--no-rm-on-error$/s) {
                push @ropts, $_;
                $rmonerror = 0;
@@ -2718,24 +2718,27 @@ sub parseopts () {
                } elsif (s/^-c(.*=.*)//s) {
                    push @ropts, $&;
                    push @git, '-c', $1;
-               } elsif (s/^-d(.*)//s) {
+               } elsif (s/^-d(.+)//s) {
                    push @ropts, $&;
                    $idistro = $1;
-               } elsif (s/^-C(.*)//s) {
+               } elsif (s/^-C(.+)//s) {
                    push @ropts, $&;
                    $changesfile = $1;
                    if ($changesfile =~ s#^(.*)/##) {
                        $buildproductsdir = $1;
                    }
-               } elsif (s/^-k(.*)//s) {
+               } elsif (s/^-k(.+)//s) {
                    $keyid=$1;
-               } elsif (s/^-wn//s) {
+               } elsif (m/^-[vdCk]$/) {
+                   badusage
+ "option \`$_' requires an argument (and no space before the argument)";
+               } elsif (s/^-wn$//s) {
                    push @ropts, $&;
                    $cleanmode = 'none';
-               } elsif (s/^-wg//s) {
+               } elsif (s/^-wg$//s) {
                    push @ropts, $&;
                    $cleanmode = 'git';
-               } elsif (s/^-wd//s) {
+               } elsif (s/^-wd$//s) {
                    push @ropts, $&;
                    $cleanmode = 'dpkg-source';
                } else {