chiark / gitweb /
dgit-repos-server: break out mkemptyrepo
[dgit.git] / infra / dgit-repos-server
index 3f41a0bb9ba356093a6f2ce2259875b8b4fcb287..9a66bdbd4b8a5cf5d095bada9792bf9e69d65466 100755 (executable)
@@ -200,6 +200,11 @@ sub policyhook {
     return $r >> 8;
 }
 
     return $r >> 8;
 }
 
+sub mkemptyrepo ($$) {
+    my ($dir,$sharedperm) = @_;
+    runcmd qw(git init --bare --quiet), "--shared=$sharedperm", $dir;
+}
+
 #----- git-receive-pack -----
 
 sub fixmissing__git_receive_pack () {
 #----- git-receive-pack -----
 
 sub fixmissing__git_receive_pack () {
@@ -549,8 +554,7 @@ sub fixmissing__git_upload_pack () {
     return if stat $destrepo;
     die $! unless $!==ENOENT;
     rmtree "$destrepo.new";
     return if stat $destrepo;
     die $! unless $!==ENOENT;
     rmtree "$destrepo.new";
-    umask 022;
-    runcmd qw(git init --bare --quiet), "$destrepo.new";
+    mkemptyrepo "$destrepo.new", "0644";
     rename "$destrepo.new", $destrepo or die $!;
     unlink "$destrepo.lock" or die $!;
     close $lfh;
     rename "$destrepo.new", $destrepo or die $!;
     unlink "$destrepo.lock" or die $!;
     close $lfh;