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.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 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 E49631F461; Sun, 23 Jun 2019 17:42:05 +0000 (UTC) Date: Sun, 23 Jun 2019 17:42:05 +0000 From: Eric Wong To: Konstantin Ryabitsev Cc: meta@public-inbox.org Subject: [PATCH] manifest: v2 epoch descriptions based on inbox->description Message-ID: <20190623174205.vpwuofotloajz7ua@dcvr> References: <20190620190017.GA27175@chatter.i7.local> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20190620190017.GA27175@chatter.i7.local> List-Id: The default $GIT_DIR/description (provided by git.git templates) isn't very useful for v2 epochs, so use the inbox description and suffix it with the epoch number if it's otherwise unnamed. Requested-by: Konstantin Ryabitsev https://public-inbox.org/meta/20190620190017.GA27175@chatter.i7.local/ --- lib/PublicInbox/WwwListing.pm | 14 +++++++++++--- t/www_listing.t | 7 ++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/PublicInbox/WwwListing.pm b/lib/PublicInbox/WwwListing.pm index e052bbff..1d4029f0 100644 --- a/lib/PublicInbox/WwwListing.pm +++ b/lib/PublicInbox/WwwListing.pm @@ -138,8 +138,8 @@ sub fingerprint ($) { $dig->hexdigest; } -sub manifest_add ($$;$) { - my ($manifest, $ibx, $epoch) = @_; +sub manifest_add ($$;$$) { + my ($manifest, $ibx, $epoch, $default_desc) = @_; my $url_path = "/$ibx->{name}"; my $git_dir = $ibx->{mainrepo}; if (defined $epoch) { @@ -155,6 +155,13 @@ sub manifest_add ($$;$) { $owner = undef if $owner eq ''; $desc = 'Unnamed repository' if $desc eq ''; + # templates/hooks--update.sample and git-multimail in git.git + # only match "Unnamed repository", not the full contents of + # templates/this--description in git.git + if ($desc =~ /\AUnnamed repository/) { + $desc = "$default_desc [epoch $epoch]" if defined($epoch); + } + my $reference; chomp(my $alt = try_cat("$git_dir/objects/info/alternates")); if ($alt) { @@ -191,8 +198,9 @@ sub js ($$) { my $manifest = { -abs2urlpath => {}, -mtime => 0 }; for my $ibx (@$list) { if (defined(my $max = $ibx->max_git_epoch)) { + my $desc = $ibx->description; for my $epoch (0..$max) { - manifest_add($manifest, $ibx, $epoch); + manifest_add($manifest, $ibx, $epoch, $desc); } } else { manifest_add($manifest, $ibx); diff --git a/t/www_listing.t b/t/www_listing.t index d82a4a4a..e5b797db 100644 --- a/t/www_listing.t +++ b/t/www_listing.t @@ -55,7 +55,12 @@ sub tiny_test { $res->{headers}->{'last-modified'}, 'modified field and Last-Modified header match'); - ok($manifest->{'/v2/git/0.git'}, 'v2 epoch appeared'); + ok(my $v2epoch0 = $manifest->{'/v2/git/0.git'}, 'v2 epoch 0 appeared'); + like($v2epoch0->{description}, qr/ \[epoch 0\]\z/, + 'epoch 0 in description'); + ok(my $v2epoch1 = $manifest->{'/v2/git/1.git'}, 'v2 epoch 1 appeared'); + like($v2epoch1->{description}, qr/ \[epoch 1\]\z/, + 'epoch 1 in description'); } my $pid; -- EW