diff options
Diffstat (limited to 'infra/dgit-repos-server')
-rwxr-xr-x | infra/dgit-repos-server | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server index 3f41a0b..9a66bdb 100755 --- a/infra/dgit-repos-server +++ b/infra/dgit-repos-server @@ -200,6 +200,11 @@ sub policyhook { 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 () { @@ -549,8 +554,7 @@ sub fixmissing__git_upload_pack () { 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; |