chiark / gitweb /
Fix bug which would make quilt patch fixup fail if git status produced "M" lines.
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 3e7bffca2e0caf0ca0e73f2c5b4f5a5cba5c97c5..878065fff06eaaf1bc49993be180f39ae79790e8 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -236,7 +236,7 @@ our %defcfg = ('dgit.default.distro' => 'debian',
               'dgit-distro.debian.sshdakls-host' => 'coccia.debian.org',
               'dgit-distro.debian.sshdakls-dir' =>
                   '/srv/ftp-master.debian.org/ftp/dists',
-              'dgit-distro.debian.mirror' => 'http://http.debian.net/debian/');
+              'dgit-distro.debian.mirror' => 'http://ftp.debian.org/debian/');
 
 sub cfg {
     foreach my $c (@_) {
@@ -591,12 +591,9 @@ Last allegedly pushed/uploaded: $oversion (newer or same)
 $later_warning_msg
 END
             $outputhash = $upload_hash;
-       } elsif ($outputhash ne $upload_hash) {
-           fail "version in archive ($cversion)".
-               " is same as version in git".
-               " to-be-uploaded (upload/) branch ($oversion)".
-               " but archive version hash no commit hash?!";
-        }
+        } else {
+           $outputhash = $upload_hash;
+       }
     }
     chdir '../../../..' or die $!;
     runcmd @git, qw(update-ref -m),"dgit fetch import $cversion",
@@ -645,7 +642,7 @@ sub fetch_from_archive () {
     #  one way or another
     get_archive_dsc() or return 0;
     foreach my $field (@ourdscfield) {
-       $dsc_hash = $dsc->{$ourdscfield};
+       $dsc_hash = $dsc->{$field};
        last if defined $dsc_hash;
     }
     if (defined $dsc_hash) {
@@ -766,7 +763,7 @@ sub commit_quilty_patch () {
     my $bad=0;
     foreach my $l (split /\n/, $output) {
        next unless $l =~ m/\S/;
-       if ($l =~ m{^\?\? (.pc|debian/patches)}) {
+       if ($l =~ m{^(?:\?\?| M) (.pc|debian/patches)}) {
            $adds{$1}++;
        } else {
            print STDERR "git status: $l\n";
@@ -1019,6 +1016,13 @@ END
        local $ENV{$fakeeditorenv} = cmdoutput qw(realpath --), $descfn;
        runcmd_ordryrun @dpkgsource, qw(--commit .), $patchname;
     }
+
+    if (!open P, '>>', ".pc/applied-patches") {
+       $!==&ENOENT or die $!;
+    } else {
+       close P;
+    }
+
     commit_quilty_patch();
 }