- ($ctx->{git} = $self->{"\0$1"}) and return summary($self, $ctx);
- $path_info =~ m!\A/(.+?)/([a-f0-9]+)/s/\z! and
- ($ctx->{git} = $self->{"\0$1"}) and
- return PublicInbox::ViewVCS::show($ctx, $2);
+ ($ctx->{git} = $cr->{$1}) and return summary($self, $ctx);
+ $path_info =~ m!\A/(.+?)/([a-f0-9]+)/s/([^/]+)?\z! and
+ ($ctx->{git} = $cr->{$1}) and
+ return PublicInbox::ViewVCS::show($ctx, $2, $3);
+
+ if ($path_info =~ m!\A/(.+?)/tree/(.*)\z! and
+ ($ctx->{git} = $cr->{$1})) {
+ return PublicInbox::RepoTree::srv_tree($ctx, $2) // r(404);
+ }