X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=infra%2Fdgit-repos-server;h=634f91edab17ee52103433f1e1790f3f92b14dba;hp=ae30eeff20d958693d911d6b5f6a931e5decd1b0;hb=89dfd17c9cd0a9c030083a5530ac816987431187;hpb=ba923623a80877a6ba06e7fe528b480763ab9ddb diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server index ae30eeff..634f91ed 100755 --- a/infra/dgit-repos-server +++ b/infra/dgit-repos-server @@ -301,15 +301,21 @@ sub movetogarbage () { # purposes (and, I guess, recovery from mistakes). This is either # $garbage or $garbage-old. if (stat_exists "$garbagerepo") { + printdebug "movetogarbage: rmtree $garbagerepo-tmp\n"; rmtree "$garbagerepo-tmp"; if (rename "$garbagerepo-old", "$garbagerepo-tmp") { + printdebug "movetogarbage: $garbagerepo-old -> -tmp, rmtree\n"; rmtree "$garbagerepo-tmp"; } else { die "$garbagerepo $!" unless $!==ENOENT; + printdebug "movetogarbage: $garbagerepo-old -> -tmp\n"; } + printdebug "movetogarbage: $garbagerepo -> -old\n"; rename "$garbagerepo", "$garbagerepo-old" or die "$garbagerepo $!"; } - rename realdestrepo, $garbagerepo + my $real = realdestrepo; + printdebug "movetogarbage: $real -> $garbagerepo\n"; + rename $real, $garbagerepo or $! == ENOENT or die "$garbagerepo $!"; }