chiark / gitweb /
Better error message if HEAD contains changes unrepresentable
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 9 Oct 2016 19:48:57 +0000 (20:48 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 10 Oct 2016 00:01:11 +0000 (01:01 +0100)
by `3.0 (quilt)'.  Closes:#834618.

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

index f8363904204aad47572cd87300f32fb66380e36e..5dc62587f03a23e0f401f5355e31dcf60f49eb8e 100644 (file)
@@ -47,6 +47,8 @@ dgit (1.5~~) unstable; urgency=medium
   * Better error message if non-split-brain patch stack no longer
     applies (due to new upstream version, or user messing with it).
     Closes:#833025.
+  * Better error message if HEAD contains changes unrepresentable
+    by `3.0 (quilt)'.  Closes:#834618.
 
   Infrastructure:
   * Better error handling in dgit-repos-policy-debian.
diff --git a/dgit b/dgit
index aa9447ff76651b4bdf7c11af9745101059c885c4..1208b1247246400d52b72adfd6089fe846b8b6ab 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -4522,11 +4522,13 @@ END
     # be.  This is mostly for error reporting.
 
     my %editedignores;
+    my @unrepres;
     my $diffbits = {
         # H = user's HEAD
         # O = orig, without patches applied
         # A = "applied", ie orig with H's debian/patches applied
-        O2H => quiltify_trees_differ($unapplied,$headref,   1,\%editedignores),
+        O2H => quiltify_trees_differ($unapplied,$headref,   1,
+                                    \%editedignores, \@unrepres),
         H2A => quiltify_trees_differ($headref,  $oldtiptree,1),
         O2A => quiltify_trees_differ($unapplied,$oldtiptree,1),
     };
@@ -4548,6 +4550,14 @@ END
                              $dl[0], $dl[1],              $dl[3], $dl[4],
                                  $dl[2],                     $dl[5];
 
+    if (@unrepres) {
+       print STDERR "dgit:  cannot represent change: $_->[1]: $_->[0]\n"
+           foreach @unrepres;
+       fail <<END;
+HEAD has changes to .orig[s] which are not representable by `3.0 (quilt)'
+END
+    }
+
     my @failsuggestion;
     if (!($diffbits->{O2H} & $diffbits->{O2A})) {
         push @failsuggestion, "This might be a patches-unapplied branch.";