From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.1 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 521E2203C3 for ; Mon, 28 Nov 2022 05:32:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=80x24.org; s=selector1; t=1669613568; bh=RtdCNsX481wrwlcweBs85zP9XC5iyQvySwzsDvjwsb4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=rXsZYfhvQ8a5pKWA1NgcQCCINreVWyJD35bVH1M2ljCKwZUjy31kpdKv7dbGzIW6Z +f/tQsawpldRUbDcfYgDcqPt2iePds6oiMfVhOzJarVTVdHQuUvV6xdQLPmTkbv6og S8mxuGq45YIkUX4WMVWawWhCULIv6MZ5O5sCGdjI= From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 73/95] clone|fetch: support passing --prune(-tags) to `git fetch' Date: Mon, 28 Nov 2022 05:32:10 +0000 Message-Id: <20221128053232.291618-74-e@80x24.org> In-Reply-To: <20221128053232.291618-1-e@80x24.org> References: <20221128053232.291618-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: We need to be able to get rid of removed branches and tags on the remote. --prune-tags is implied for non-objstore repos, and incompatible with objstore repos. --- Documentation/public-inbox-clone.pod | 7 +++++++ Documentation/public-inbox-fetch.pod | 6 ++++++ lib/PublicInbox/LeiMirror.pm | 2 ++ script/public-inbox-clone | 1 + script/public-inbox-fetch | 1 + 5 files changed, 17 insertions(+) diff --git a/Documentation/public-inbox-clone.pod b/Documentation/public-inbox-clone.pod index 9288b175..bcf7dcc1 100644 --- a/Documentation/public-inbox-clone.pod +++ b/Documentation/public-inbox-clone.pod @@ -104,6 +104,13 @@ C directory. If only C<--manifest => is specified where C is an empty string (C<"">), then C (C<$DESTINATION/manifest.js.gz>) is the implied value of C. +=item -p + +=item --prune + +Pass the C<--prune> and C<--prune-tags> flags to L +calls on incremental clones. + =item -n =item --dry-run diff --git a/Documentation/public-inbox-fetch.pod b/Documentation/public-inbox-fetch.pod index c78ffc0b..c5e73d38 100644 --- a/Documentation/public-inbox-fetch.pod +++ b/Documentation/public-inbox-fetch.pod @@ -61,6 +61,12 @@ there are no updates: public-inbox-fetch -q --exit-code && public-inbox-index test $? -eq 0 || exit $? +=item -p + +=item --prune + +Pass the C<--prune> and C<--prune-tags> flags to L calls. + =item -v =item --verbose diff --git a/lib/PublicInbox/LeiMirror.pm b/lib/PublicInbox/LeiMirror.pm index 0e8689ca..2473c74b 100644 --- a/lib/PublicInbox/LeiMirror.pm +++ b/lib/PublicInbox/LeiMirror.pm @@ -275,6 +275,7 @@ sub fetch_args ($$) { push @cmd, '-q' if $lei->{opt}->{quiet} || ($lei->{opt}->{jobs} // 1) > 1; push @cmd, '-v' if $lei->{opt}->{verbose}; + push(@cmd, '-p') if $lei->{opt}->{prune}; @cmd; } @@ -527,6 +528,7 @@ sub resume_fetch { } my $cmd = [ @{$self->{-torsocks}}, @git, fetch_args($self->{lei}, $opt), $rn ]; + push @$cmd, '-P' if $self->{lei}->{prune}; # --prune-tags implied start_cmd($self, $cmd, $opt, $fini); } diff --git a/script/public-inbox-clone b/script/public-inbox-clone index 9a22fa21..df9ddd37 100755 --- a/script/public-inbox-clone +++ b/script/public-inbox-clone @@ -24,6 +24,7 @@ options: EOF GetOptions($opt, qw(help|h quiet|q verbose|v+ C=s@ c=s@ include|I=s@ exclude=s@ inbox-config=s inbox-version=i objstore=s manifest=s + prune|p dry-run|n jobs|j=i no-torsocks torsocks=s epoch=s)) or die $help; if ($opt->{help}) { print $help; exit }; require PublicInbox::Admin; # loads Config diff --git a/script/public-inbox-fetch b/script/public-inbox-fetch index 4b991a90..6fd15328 100755 --- a/script/public-inbox-fetch +++ b/script/public-inbox-fetch @@ -23,6 +23,7 @@ options: -C DIR chdir to specified directory EOF GetOptions($opt, qw(help|h quiet|q verbose|v+ C=s@ c=s@ try-remote|T=s@ + prune|p no-torsocks torsocks=s exit-code)) or die $help; if ($opt->{help}) { print $help; exit }; require PublicInbox::Fetch; # loads Admin