diff options
Diffstat (limited to 'dgit-repos-server')
-rwxr-xr-x | dgit-repos-server | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/dgit-repos-server b/dgit-repos-server index aab35d3..aaa7542 100755 --- a/dgit-repos-server +++ b/dgit-repos-server @@ -133,6 +133,13 @@ sub acquiretree ($$) { return $fh; } +sub mkrepotmp () { + my $tmpdir = "$dgitrepos/_tmp"; + return if mkdir $tmpdir; + return if $! == EEXIST; + die $!; +} + sub reject ($) { die "dgit-repos-server: reject: $_[0]\n"; } @@ -146,6 +153,7 @@ sub runcmd { #----- git-receive-pack ----- sub fixmissing__git_receive_pack () { + mkrepotmp(); $destrepo = "$dgitrepos/_tmp/${package}_prospective"; acquiretree($destrepo, 1); my $r = system qw(cp -a --), "$dgitrepos/_template", "$destrepo"; @@ -153,6 +161,7 @@ sub fixmissing__git_receive_pack () { } sub makeworkingclone () { + mkrepotmp(); $workrepo = "$dgitrepos/_tmp/${package}_incoming$$"; acquiretree($workrepo, 1); runcmd qw(git clone -l -q --mirror), $destrepo, $workrepo; |