summaryrefslogtreecommitdiff
path: root/infra/dgit-repos-server
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2015-03-21 11:55:13 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2015-03-22 15:19:50 +0000
commit16f71298e0a7736a3833e44e4a9ebb356f919dc6 (patch)
treeb9e4be97a9f6b11811352d81545495ea614182be /infra/dgit-repos-server
parent20f42b85b3fe5fc7e120fae26500298fececc5ad (diff)
dgit-repos-server: Break out movetogarbage
Diffstat (limited to 'infra/dgit-repos-server')
-rwxr-xr-xinfra/dgit-repos-server16
1 files changed, 10 insertions, 6 deletions
diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server
index 734fd71..ed27c0e 100755
--- a/infra/dgit-repos-server
+++ b/infra/dgit-repos-server
@@ -213,6 +213,15 @@ sub mkrepo_fromtemplate ($) {
!$r or die "create new repo $dir failed: $r $!";
}
+sub movetogarbage () {
+ my $garbagerepo = "$dgitrepos/_tmp/${package}_garbage";
+ acquiretree($garbagerepo,1);
+ rmtree $garbagerepo;
+ rename $realdestrepo, $garbagerepo
+ or $! == ENOENT
+ or die "rename repo $realdestrepo to $garbagerepo: $!";
+}
+
#----- git-receive-pack -----
sub fixmissing__git_receive_pack () {
@@ -642,12 +651,7 @@ sub parseargsdispatch () {
my ($policy, $pollock) = policyhook(FRESHREPO,'check-package',$package);
if ($policy & FRESHREPO) {
- my $garbagerepo = "$dgitrepos/_tmp/${package}_garbage";
- acquiretree($garbagerepo,1);
- rmtree $garbagerepo;
- rename $realdestrepo, $garbagerepo
- or $! == ENOENT
- or die "rename repo $destrepo to $garbagerepo: $!";
+ movetogarbage;
}
close $pollock or die $!;