about summary refs log tree commit homepage
path: root/lib/PublicInbox/V2Writable.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-03-08 22:52:16 +0000
committerEric Wong <e@80x24.org>2019-03-08 22:52:43 +0000
commit534c55e5a8dc63942bfcd8401b08915c6ce118bc (patch)
tree93d2389ec16e9831fb8f8a9e235c1a926122e771 /lib/PublicInbox/V2Writable.pm
parent7d9b50c3df67d22a289afa31eddcc3a06ddd93cf (diff)
downloadpublic-inbox-534c55e5a8dc63942bfcd8401b08915c6ce118bc.tar.gz
We'll be using this sub to fill $GIT_DIR/objects/info/alternates
if somebody uses clone --mirror, too
Diffstat (limited to 'lib/PublicInbox/V2Writable.pm')
-rw-r--r--lib/PublicInbox/V2Writable.pm21
1 files changed, 13 insertions, 8 deletions
diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm
index b1d8095f..bc31ffa5 100644
--- a/lib/PublicInbox/V2Writable.pm
+++ b/lib/PublicInbox/V2Writable.pm
@@ -509,14 +509,12 @@ sub done {
         $self->{-inbox}->git->cleanup;
 }
 
-sub git_init {
+sub fill_alternates ($$) {
         my ($self, $epoch) = @_;
-        my $pfx = "$self->{-inbox}->{mainrepo}/git";
-        my $git_dir = "$pfx/$epoch.git";
-        my @cmd = (qw(git init --bare -q), $git_dir);
-        PublicInbox::Import::run_die(\@cmd);
 
+        my $pfx = "$self->{-inbox}->{mainrepo}/git";
         my $all = "$self->{-inbox}->{mainrepo}/all.git";
+        my @cmd;
         unless (-d $all) {
                 @cmd = (qw(git init --bare -q), $all);
                 PublicInbox::Import::run_die(\@cmd);
@@ -524,8 +522,7 @@ sub git_init {
                                 'repack.writeBitmaps', 'true');
                 PublicInbox::Import::run_die(\@cmd);
         }
-
-        @cmd = (qw/git config/, "--file=$git_dir/config",
+        @cmd = (qw/git config/, "--file=$pfx/$epoch.git/config",
                         'include.path', '../../all.git/config');
         PublicInbox::Import::run_die(\@cmd);
 
@@ -540,12 +537,20 @@ sub git_init {
                 my $dir = "../../git/$i.git/objects";
                 push @add, $dir if !$alts{$dir} && -d "$pfx/$i.git";
         }
-        return $git_dir unless @add;
+        return unless @add;
         open my $fh, '>>', $alt or die "open >> $alt: $!\n";
         foreach my $dir (@add) {
                 print $fh "$dir\n" or die "print >> $alt: $!\n";
         }
         close $fh or die "close $alt: $!\n";
+}
+
+sub git_init {
+        my ($self, $epoch) = @_;
+        my $git_dir = "$self->{-inbox}->{mainrepo}/git/$epoch.git";
+        my @cmd = (qw(git init --bare -q), $git_dir);
+        PublicInbox::Import::run_die(\@cmd);
+        fill_alternates($self, $epoch);
         $git_dir
 }