]> Sergey Matveev's repositories - public-inbox.git/commitdiff
lei_mirror: initialize placeholders with "head" from manifest
authorEric Wong <e@80x24.org>
Mon, 28 Nov 2022 05:31:18 +0000 (05:31 +0000)
committerEric Wong <e@80x24.org>
Mon, 28 Nov 2022 23:38:54 +0000 (23:38 +0000)
This only affects v2 epochs, but ensures our bases are covered,
at least.  We'll have to update PublicInbox::Fetch later to
deal with "head" entries in manifest.js.gz, too.

lib/PublicInbox/LeiMirror.pm

index d955ac3b99470ba4dec1b430819f95420b05800c..e6b3e32a1bacbe264bea6f86c7fe705109de9bc0 100644 (file)
@@ -307,7 +307,7 @@ EOM
 }
 
 sub init_placeholder ($$$) {
-       my ($src, $edst, $owner) = @_;
+       my ($src, $edst, $ent) = @_;
        PublicInbox::Import::init_bare($edst);
        my $f = "$edst/config";
        open my $fh, '>>', $f or die "open($f): $!";
@@ -321,13 +321,19 @@ sub init_placeholder ($$$) {
 ; will not fetch updates for it unless write permission is added.
 ; Hint: chmod +w $edst
 EOM
-       if (defined($owner)) {
+       if (defined($ent->{owner})) {
                print $fh <<EOM or die "print($f): $!";
 [gitweb]
-       owner = $owner
+       owner = $ent->{owner}
 EOM
        }
-       close $fh or die "close:($f): $!";
+       close $fh or die "close($f): $!";
+       if (defined $ent->{head}) {
+               $f = "$edst/HEAD";
+               open $fh, '>', $f or die "open($f): $!";
+               print $fh $ent->{head}, "\n" or die "print($f): $!";
+               close $fh or die "close($f): $!";
+       }
 }
 
 sub reap_clone { # async, called via SIGCHLD
@@ -410,7 +416,7 @@ failed to extract epoch number from $src
                        my $o = $m->{$key}->{owner};
                        push(@{$task->{-owner}}, $edst, $o) if defined($o);
                } else { # create a placeholder so users only need to chmod +w
-                       init_placeholder($src, $edst, $m->{$key}->{owner});
+                       init_placeholder($src, $edst, $m->{$key});
                        push @{$task->{-read_only}}, $edst;
                        push @skip, $key;
                }