chiark / gitweb /
better error msgs from check_not_dirty
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 940c89b5cb608c1cf69e046a6659b4ecf8d68b32..b3a4e9b7fc10252debef9133c3010f6be52ac498 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -707,7 +707,15 @@ sub pull () {
 }
 
 sub check_not_dirty () {
 }
 
 sub check_not_dirty () {
-    runcmd @git, qw(diff --quiet HEAD);
+    my @cmd = (@git, qw(diff --quiet HEAD));
+    printcmd(\*DEBUG,"+",@cmd) if $debug>0;
+    $!=0; $?=0; system @cmd;
+    return if !$! && !$?;
+    if (!$! && $?==256) {
+       fail "working tree is dirty (does not match HEAD)";
+    } else {
+       failedcmd @cmd;
+    }
 }
 
 sub commit_quilty_patch ($) {
 }
 
 sub commit_quilty_patch ($) {