chiark / gitweb /
dgit-repos-server: make _empty ourselves
[dgit.git] / dgit-repos-server
index 7c48b2f322fb3a971a79a341cb61fe8cc29db077..2cbb4e7d449469485db35fc828c494ccd38e3181 100755 (executable)
@@ -403,6 +403,15 @@ sub stunthook () {
 
 sub fixmissing__git_upload_pack () {
     $destrepo = "$dgitrepos/_empty";
+    my $lfh = acquiretree($destrepo,1);
+    return if stat $destrepo;
+    die $! unless $!==ENOENT;
+    rmtree "$destrepo.new";
+    umask 022;
+    runcmd qw(git init --bare --quiet), "$destrepo.new";
+    rename "$destrepo.new", $destrepo or die $!;
+    unlink "$destrepo.lock" or die $!;
+    close $lfh;
 }
 
 sub main__git_upload_pack () {