chiark / gitweb /
Print better message for lack of configuration settings.
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 4b218a3b2c8d46870a8691444f03c90b8610e554..f9e6d1bc7d9443c3c866e45d3cdf81f000a6e9d9 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -500,7 +500,8 @@ sub cfg {
        my $dv = $defcfg{$c};
        return $dv if defined $dv;
     }
-    badcfg "need value for one of: @_";
+    badcfg "need value for one of: @_\n".
+       "$us: distro or suite appears not to be (properly) supported";
 }
 
 sub access_basedistro () {
@@ -1391,13 +1392,17 @@ sub dopush () {
         $dscpath =~ m#^/# ? $dscpath : "../../../$dscpath";
     my ($tree,$dir) = mktree_in_ud_from_only_subdir();
     changedir '../../../..';
-    my @diffcmd = (@git, qw(diff --exit-code), $tree);
+    my $diffopt = $debug>0 ? '--exit-code' : '--quiet';
+    my @diffcmd = (@git, qw(diff), $diffopt, $tree);
     printcmd \*DEBUG,$debugprefix."+",@diffcmd;
     $!=0; $?=0;
-    if (system @diffcmd) {
-       if ($! && $?==256) {
+    my $r = system @diffcmd;
+    if ($r) {
+       if ($r==256) {
            fail "$dscfn specifies a different tree to your HEAD commit;".
-               " perhaps you forgot to build";
+               " perhaps you forgot to build".
+               ($diffopt eq '--exit-code' ? "" :
+                " (run with -D to see full diff output)");
        } else {
            failedcmd @diffcmd;
        }