chiark / gitweb /
dgit: quilt fixup: Do not suggest quilt modes if we see gdr
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 20 Aug 2018 00:42:47 +0000 (01:42 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 20 Aug 2018 00:45:39 +0000 (01:45 +0100)
If `stopped at' is a git-debrebase commit, then a non-default quilt
mode is probably not the answer.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
debian/changelog
dgit

index b4fe0cbf6b24577a5acd90f909461cb245795b48..a370753de38f8ce247d6cf42eb2dfa3d299ebfa8 100644 (file)
@@ -30,6 +30,8 @@ dgit (6.7~) unstable; urgency=medium
     in both dgit(7) and in error messages.  No longer suggest
     --quilt=smash or dpkg-source --commit in the error message.
     Closes:906196.
     in both dgit(7) and in error messages.  No longer suggest
     --quilt=smash or dpkg-source --commit in the error message.
     Closes:906196.
+  * dgit: Do not suggest --quilt modes if quilt fixup "stopped at"
+    a commit made by git-debrebase.  Closes:#906197.
 
  --
 
 
  --
 
diff --git a/dgit b/dgit
index 83d1d09fb740bafd9aca93e8f080e468ea3775f1..6377e327091bfd900ddaa0746b78aaf998aa6660 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -5368,10 +5368,17 @@ sub quiltify ($$$$) {
        };
        if ($quilt_mode eq 'linear') {
            print STDERR "\n$us: error: quilt fixup cannot be linear.  Stopped at:\n";
        };
        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";
            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";
            }
            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";
            print STDERR "$us: $_->[1]\n" foreach @$failsuggestion;
            fail
  "quilt history linearisation failed.  Search \`quilt fixup' in dgit(7).\n";
@@ -5924,7 +5931,7 @@ END
     push @failsuggestion, [ 'quilt-mode', "Maybe you need to specify one of".
         " --[quilt=]gbp --[quilt=]dpm --quilt=unapplied ?" ],
            [ 'origs',
     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?" ];
+ "Maybe orig tarball(s) are not identical to git representation?" ];
 
     if (quiltmode_splitbrain()) {
        quiltify_splitbrain($clogp, $unapplied, $headref, $oldtiptree,
 
     if (quiltmode_splitbrain()) {
        quiltify_splitbrain($clogp, $unapplied, $headref, $oldtiptree,