]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/WwwCoderepo.pm
viewvcs: use git(1) for coderepo access
[public-inbox.git] / lib / PublicInbox / WwwCoderepo.pm
index 668b639881a06a9be1a9fcb253e0dc1a03944496..5ca8ef554774a6131560a7406423782e0acb5cb5 100644 (file)
@@ -11,8 +11,6 @@ use File::Temp 0.19 (); # newdir
 use PublicInbox::ViewVCS;
 use PublicInbox::WwwStatic qw(r);
 use PublicInbox::GitHTTPBackend;
-use PublicInbox::Git;
-use PublicInbox::GitAsyncCat;
 use PublicInbox::WwwStream;
 use PublicInbox::Hval qw(ascii_html);
 use PublicInbox::ViewDiff qw(uri_escape_path);
@@ -199,12 +197,7 @@ sub summary {
        $tip //= 'HEAD';
        my @try = ("$tip:README", "$tip:README.md"); # TODO: configurable
        $ctx->{-nr_readme_tries} = [ @try ];
-       $ctx->{git}->cat_async($_, \&set_readme, $ctx) for @try;
-       if ($ctx->{env}->{'pi-httpd.async'}) {
-               PublicInbox::GitAsyncCat::watch_cat($ctx->{git});
-       } else { # synchronous
-               $ctx->{git}->cat_async_wait;
-       }
+       PublicInbox::ViewVCS::do_cat_async($ctx, \&set_readme, @try);
        sub { # $_[0] => PublicInbox::HTTP::{Identity,Chunked}
                $ctx->{env}->{'qspawn.wcb'} = $_[0];
                $qsp->psgi_qx($ctx->{env}, undef, \&capture_refs, $ctx);
@@ -223,9 +216,9 @@ sub srv { # endpoint called by PublicInbox::WWW
        }
        $path_info =~ m!\A/(.+?)/\z! and
                ($ctx->{git} = $cr->{$1}) and return summary($self, $ctx);
-       $path_info =~ m!\A/(.+?)/([a-f0-9]+)/s/\z! and
+       $path_info =~ m!\A/(.+?)/([a-f0-9]+)/s/([^/]+)?\z! and
                        ($ctx->{git} = $cr->{$1}) and
-               return PublicInbox::ViewVCS::show($ctx, $2);
+               return PublicInbox::ViewVCS::show($ctx, $2, $3);
 
        if ($path_info =~ m!\A/(.+?)/tree/(.*)\z! and
                        ($ctx->{git} = $cr->{$1})) {