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 7c48b2f..2cbb4e7 100755 --- a/dgit-repos-server +++ b/dgit-repos-server @@ -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 () { |