+# PSGI mount prefixes and manifest.js.gz prefixes don't always align...
+sub deduce_epochs ($$) {
+ my ($m, $path) = @_;
+ my ($v1_bare, @v2_epochs);
+ my $path_pfx = '';
+ do {
+ $v1_bare = $m->{$path};
+ @v2_epochs = grep(m!\A\Q$path\E/git/[0-9]+\.git\z!, keys %$m);
+ } while (!defined($v1_bare) && !@v2_epochs &&
+ $path =~ s!\A(/[^/]+)/!/! and $path_pfx .= $1);
+ ($path_pfx, $v1_bare, @v2_epochs);
+}
+