diff options
-rw-r--r-- | debian/changelog | 2 | ||||
-rwxr-xr-x | dgit | 15 | ||||
-rwxr-xr-x | tests/tests/quilt-gbp | 2 |
3 files changed, 12 insertions, 7 deletions
diff --git a/debian/changelog b/debian/changelog index 9c52188..0dda1c7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -49,6 +49,8 @@ dgit (1.5~~) unstable; urgency=medium Closes:#833025. * Better error message if HEAD contains changes unrepresentable by `3.0 (quilt)'. Closes:#834618. + * Much better error message when HEAD and .dsc do not match. + Closes:#809516. Infrastructure: * Better error handling in dgit-repos-policy-debian. @@ -3211,17 +3211,20 @@ END my ($tree,$dir) = mktree_in_ud_from_only_subdir(); check_for_vendor_patches() if madformat($dsc->{format}); changedir '../../../..'; - my $diffopt = $debuglevel>0 ? '--exit-code' : '--quiet'; - my @diffcmd = (@git, qw(diff), $diffopt, $tree, $dgithead); + my @diffcmd = (@git, qw(diff --quiet), $tree, $dgithead); debugcmd "+",@diffcmd; $!=0; $?=-1; my $r = system @diffcmd; if ($r) { if ($r==256) { - fail "$dscfn specifies a different tree to your HEAD commit;". - " perhaps you forgot to build". - ($diffopt eq '--exit-code' ? "" : - " (run with -D to see full diff output)"); + my $diffs = cmdoutput @git, qw(diff --stat), $tree, $dgithead; + fail <<END +HEAD specifies a different tree to $dscfn: +$diffs +Perhaps you forgot to build. Or perhaps there is a problem with your + source tree (see dgit(7) for some hints). To see a full diff, run + git diff $tree HEAD +END } else { failedcmd @diffcmd; } diff --git a/tests/tests/quilt-gbp b/tests/tests/quilt-gbp index 23083a7..fe68222 100755 --- a/tests/tests/quilt-gbp +++ b/tests/tests/quilt-gbp @@ -27,7 +27,7 @@ t-dgit --quilt=gbp --clean=git --gbp-pq=no-such-command-gbp build-source t-dgit --quilt=gbp --clean=git build-source -t-expect-fail 'specifies a different tree to your HEAD commit' \ +t-expect-fail "HEAD specifies a different tree to $p" \ t-dgit push test-push () { |