summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog4
-rwxr-xr-xdgit8
2 files changed, 11 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog
index 1f73c7c..f3a88a2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,10 @@ dgit (1.5~~) unstable; urgency=medium
has been changed recently and now this default setting is very awkward
to change for the dgit user.
+ Bugfixes:
+ * When cleaning up after failed clone, stat the to-be-cleaned-up
+ directory before running rmtree on it. Closes:#796773.
+
Test suite:
* When sbuild fails, do not crash due to sed not finding the log
file. Instead, simply tolerate the absence of the log file.
diff --git a/dgit b/dgit
index 9edc657..91f43af 100755
--- a/dgit
+++ b/dgit
@@ -2131,7 +2131,13 @@ sub cmd_clone {
return if $!==&ENOENT;
die "chdir $cwd_remove: $!";
}
- rmtree($dstdir) or die "remove $dstdir: $!\n";
+ if (stat $dstdir) {
+ rmtree($dstdir) or die "remove $dstdir: $!\n";
+ } elsif (!grep { $! == $_ }
+ (ENOENT, ENOTDIR, EACCES, EPERM, ELOOP)) {
+ } else {
+ print STDERR "check whether to remove $dstdir: $!\n";
+ }
};
}