lib/PublicInbox/RepoAtom.pm | 3 ++- lib/PublicInbox/WwwCoderepo.pm | 1 + t/solver_git.t | 5 ++++- diff --git a/lib/PublicInbox/RepoAtom.pm b/lib/PublicInbox/RepoAtom.pm index 44883ab468e81c15636aa215731a1a31db5ebad4..c89d455141f0ea716f10973b60545bde35395e20 100644 --- a/lib/PublicInbox/RepoAtom.pm +++ b/lib/PublicInbox/RepoAtom.pm @@ -120,7 +120,8 @@ } # else: let git decide based on HEAD if $tip isn't defined push @cmd, '--'; push @cmd, $path if $path ne ''; - my $qsp = PublicInbox::Qspawn->new(\@cmd); + my $qsp = PublicInbox::Qspawn->new(\@cmd, undef, + { quiet => 1, 2 => $ctx->{lh} }); $qsp->psgi_return($ctx->{env}, undef, \&atom_ok, $ctx); } diff --git a/lib/PublicInbox/WwwCoderepo.pm b/lib/PublicInbox/WwwCoderepo.pm index 7a2cb80bd33dc3d679f4c666a297a4aa27cdd200..8a490b6cb66c26c875c7eb26c09cb58ffbaf4b6a 100644 --- a/lib/PublicInbox/WwwCoderepo.pm +++ b/lib/PublicInbox/WwwCoderepo.pm @@ -308,6 +308,7 @@ $ctx->{wcr} = $self; PublicInbox::RepoSnapshot::srv($ctx, $2) // r(404); } elsif ($path_info =~ m!\A/(.+?)/atom/(.*)\z! and ($ctx->{git} = $cr->{$1})) { + $ctx->{lh} = $self->{log_fh}; PublicInbox::RepoAtom::srv_atom($ctx, $2) // r(404); } elsif ($path_info =~ m!\A/(.+?)/tags\.atom\z! and ($ctx->{git} = $cr->{$1})) { diff --git a/t/solver_git.t b/t/solver_git.t index 0090bc06d6165c9fd44ca57745c26b3413cc33e0..79672398f88cfe9fcdbad92629f68136eda7d2cc 100644 --- a/t/solver_git.t +++ b/t/solver_git.t @@ -379,7 +379,10 @@ $t = XML::TreePP->new->parse($res->content); ok($t->{feed}->{entry}, 'got entry'); $res = $cb->(GET('/public-inbox/atom/README.md')); - is($res->code, 404, '404 on non-existent file Atom feed'); + is($res->code, 404, '404 on missing file Atom feed'); + + $res = $cb->(GET('/public-inbox/atom/?h=gone')); + is($res->code, 404, '404 on missing Atom feed branch'); } $res = $cb->(GET('/public-inbox/tree/'));