Fix downloading of raw files with folder names
authorChristian Weiske <cweiske@cweiske.de>
Wed, 27 Dec 2023 14:00:33 +0000 (15:00 +0100)
committerChristian Weiske <cweiske@cweiske.de>
Wed, 27 Dec 2023 14:02:44 +0000 (15:02 +0100)
Previously an error occured for an URL like
"http://phorkie.cwboo/18/rev-raw/1f656befc962f35c6adbce29f3fe30d8297489e8/foo/bar.ini":

> Some errors in executing git command
> Output: Error: fatal: ambiguous argument '1f656befc962f35c6adbce29f3fe30d8297489e8/foo':
> unknown revision or path not in the working tree.
> Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'

README.rst
www/.htaccess

index ccdd14c9b8fa2cf334781c39fc45818c61ae5518..1a96ad1a7fb1d19d0dee4fa4a17b83852cc77b8e 100644 (file)
@@ -376,7 +376,7 @@ If you use nginx, place the following lines into your ``server`` block:
     rewrite ^/([0-9]+)/fork$ /fork.php?id=$1;
     rewrite ^/([0-9]+)/raw/(.+)$ /raw.php?id=$1&file=$2;
     rewrite ^/([0-9]+)/rev/(.+)$ /revision.php?id=$1&rev=$2;
-    rewrite ^/([0-9]+)/rev-raw/(.+)/(.+)$ /raw.php?id=$1&rev=$2&file=$3;
+    rewrite ^/([0-9]+)/rev-raw/([^/]+)/(.+)$ /raw.php?id=$1&rev=$2&file=$3;
     rewrite ^/([0-9]+)/tool/([^/]+)/(.+)$ /tool.php?id=$1&tool=$2&file=$3;
 
     rewrite ^/fork-remote$ /fork-remote.php;
@@ -414,7 +414,7 @@ Lighttpd rewrites
         "^/([0-9]+)/fork$" => "/fork.php?id=$1",
         "^/([0-9]+)/raw/(.+)$" => "/raw.php?id=$1&file=$2",
         "^/([0-9]+)/rev/(.+)$" => "/revision.php?id=$1&rev=$2",
-        "^/([0-9]+)/rev-raw/(.+)/(.+)$" => "/raw.php?id=$1&rev=$2&file=$3",
+        "^/([0-9]+)/rev-raw/([^/]+)/(.+)$" => "/raw.php?id=$1&rev=$2&file=$3",
         "^/([0-9]+)/tool/([^/]+)/(.+)$" => "/tool.php?id=$1&tool=$2&file=$3",
 
         "^/fork-remote$" => "/fork-remote.php",
index c08ec825bd06601d7198cc2e845239f92f152a84..8afcbf7f019707999df8458667f500fb5343f5fc 100644 (file)
@@ -18,7 +18,7 @@ RewriteRule ^([0-9]+)/fork$ fork.php?id=$1
 RewriteRule ^([0-9]+)/linkback$ linkback.php?id=$1
 RewriteRule ^([0-9]+)/raw/(.+)$ raw.php?id=$1&file=$2 [B]
 RewriteRule ^([0-9]+)/rev/(.+)$ revision.php?id=$1&rev=$2 [B]
-RewriteRule ^([0-9]+)/rev-raw/(.+)/(.+)$ raw.php?id=$1&rev=$2&file=$3 [B]
+RewriteRule ^([0-9]+)/rev-raw/([^/]+)/(.+)$ raw.php?id=$1&rev=$2&file=$3 [B]
 RewriteRule ^([0-9]+)/tool/([^/]+)/(.+)$ tool.php?id=$1&tool=$2&file=$3 [B]
 
 RewriteRule ^fork-remote$ fork-remote.php