X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=Debian%2FDgit.pm;h=19ea85b6ebe887c36ead2c44a6d409a17e5bfee6;hb=89906fd58100567b415f9c13d83121b988dfa325;hp=08a5b6c29a9ae21fc414d49f0eb18b02ae40931f;hpb=c826365c57b445c06ba4d5c5c90be24556eaa97b;p=dgit.git diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 08a5b6c2..19ea85b6 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 ($) {