chiark / gitweb /
changelog: Finalise 6.7
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 2a3d9ac45cbb7909002bccd1750ad7d8b4b4a1c2..e75210805370d71b799df411fbad4ed2ead8c2b3 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -5368,9 +5368,17 @@ sub quiltify ($$$$) {
        };
        if ($quilt_mode eq 'linear') {
            print STDERR "\n$us: error: quilt fixup cannot be linear.  Stopped at:\n";
+           my $all_gdr = !!@nots;
            foreach my $notp (@nots) {
                print STDERR "$us:  ", $reportnot->($notp), "\n";
+               $all_gdr &&= $notp->{Child} &&
+                   (git_cat_file $notp->{Child}{Commit}, 'commit')
+                   =~ m{^\[git-debrebase.*\]$}m;
            }
+           print STDERR "\n";
+           $failsuggestion =
+               [ grep { $_->[0] ne 'quilt-mode' } @$failsuggestion ]
+               if $all_gdr;
            print STDERR "$us: $_->[1]\n" foreach @$failsuggestion;
            fail
  "quilt history linearisation failed.  Search \`quilt fixup' in dgit(7).\n";
@@ -5920,10 +5928,15 @@ END
         push @failsuggestion, [ 'applied',
                                "This might be a patches-applied branch." ];
     }
-    push @failsuggestion, [ 'quilt-mode', "Maybe you need to specify one of".
-        " --[quilt=]gbp --[quilt=]dpm --quilt=unapplied ?" ],
-           [ 'origs',
- "Or, maybe orig tarball(s) are not identical to git representation?" ];
+    push @failsuggestion, [ 'quilt-mode',
+ "Maybe you need one of --[quilt=]gbp --[quilt=]dpm --quilt=unapplied ?" ];
+
+    push @failsuggestion, [ 'gitattrs',
+ "Warning: Tree has .gitattributes.  See GITATTRIBUTES in dgit(7)." ]
+       if stat_exists '.gitattributes';
+
+    push @failsuggestion, [ 'origs',
+ "Maybe orig tarball(s) are not identical to git representation?" ];
 
     if (quiltmode_splitbrain()) {
        quiltify_splitbrain($clogp, $unapplied, $headref, $oldtiptree,