summaryrefslogtreecommitdiff
path: root/dgit-repos-server
diff options
context:
space:
mode:
Diffstat (limited to 'dgit-repos-server')
-rwxr-xr-xdgit-repos-server9
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;