use PublicInbox::Hval qw(ascii_html);
use PublicInbox::Linkify;
use PublicInbox::View;
+use PublicInbox::Inbox;
use bytes ();
use HTTP::Date qw(time2str);
require Digest::SHA;
require File::Spec;
-{ no warnings 'once'; *try_cat = *PublicInbox::Inbox::try_cat };
+*try_cat = \&PublicInbox::Inbox::try_cat;
sub list_all ($$$) {
my ($self, $env, $hide_key) = @_;
$title .= ' - listing';
$code = 200;
- # Swartzian transform since ->modified is expensive
+ # Schwartzian transform since Inbox->modified is expensive
@$list = sort {
$b->[0] <=> $a->[0]
} map { [ $_->modified, $_ ] } @$list;
$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};
+ my $git_dir = $ibx->{inboxdir};
if (defined $epoch) {
$git_dir .= "/git/$epoch.git";
$url_path .= "/git/$epoch.git";
$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) {
my $manifest = { -abs2urlpath => {}, -mtime => 0 };
for my $ibx (@$list) {
- if (defined(my $max = $ibx->max_git_part)) {
+ 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);