summaryrefslogtreecommitdiff
path: root/Debian
diff options
context:
space:
mode:
Diffstat (limited to 'Debian')
-rw-r--r--Debian/Dgit.pm16
1 files changed, 10 insertions, 6 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm
index 08a5b6c..19ea85b 100644
--- a/Debian/Dgit.pm
+++ b/Debian/Dgit.pm
@@ -445,8 +445,7 @@ sub rename_link_xf ($$$) {
return 0;
}
$!=0; $?=0;
- my @cmd = ($keeporig ? qw(cp) : qw(mv));
- push @cmd, (qw(--), $src, "$dst.tmp");
+ my @cmd = (qw(cp --), $src, "$dst.tmp");
debugcmd '+',@cmd;
if (system @cmd) {
failedcmd_report_cmd undef, @cmd;
@@ -454,12 +453,17 @@ sub rename_link_xf ($$$) {
$! = -1;
return 0;
}
- if (rename "$dst.tmp", $dst) {
- return 1;
- } else {
- $@ = f_ "finally install file after mv: %S", $!;
+ if (!rename "$dst.tmp", $dst) {
+ $@ = f_ "finally install file after cp: %S", $!;
return 0;
}
+ if (!$keeporig) {
+ if (!unlink $src) {
+ $@ = f_ "delete old file after cp: %S", $!;
+ return 0;
+ }
+ }
+ return 1;
}
sub hashfile ($) {