X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=infra%2Fdgit-repos-server;h=a6f57be64311ba3fea2d84462404b4fd2c16e29b;hb=76cbbc78a07e44b4c917bbaa93bf7cd602387082;hp=5a87b891b4bc14e2e9b281fce3e476ec1ac23504;hpb=013cc5ea30f13c2ea3be8851a34efe7fd6af2eae;p=dgit.git diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server index 5a87b891..a6f57be6 100755 --- a/infra/dgit-repos-server +++ b/infra/dgit-repos-server @@ -163,7 +163,8 @@ $SIG{__WARN__} = sub { die $_[0]; }; # appropriate lock. # # If policy hook wants to run dgit (or something else in the dgit -# package), it should use DGIT-LIVE-DIR/dgit (etc.) +# package), it should use DGIT-LIVE-DIR/dgit (etc.), or if that is +# ENOENT, use the installed version. use POSIX; @@ -290,10 +291,11 @@ sub mkemptyrepo ($$) { sub mkrepo_fromtemplate ($) { my ($dir) = @_; my $template = "$dgitrepos/_template"; - locksometree($template); + my $templatelock = locksometree($template); printdebug "copy template $template -> $dir\n"; my $r = system qw(cp -a --), $template, $dir; !$r or die "create new repo $dir failed: $r $!"; + close $templatelock; } sub movetogarbage () { @@ -729,7 +731,7 @@ sub checktagnoreplay () { } } else { my $branch= server_branch($suite); - my $branchhead= git_get_ref($branch); + my $branchhead= git_get_ref(server_ref($suite)); if (!length $branchhead) { # No such branch - NOFFCHECK was unnecessary. Oh well. printdebug "checktagnoreplay - not FRESHREPO, new branch, ok\n";