From 534c55e5a8dc63942bfcd8401b08915c6ce118bc Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 8 Mar 2019 22:52:16 +0000 Subject: v2writable: hoist out fill_alternates We'll be using this sub to fill $GIT_DIR/objects/info/alternates if somebody uses clone --mirror, too --- lib/PublicInbox/V2Writable.pm | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'lib/PublicInbox/V2Writable.pm') 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 } -- cgit v1.2.3-24-ge0c7