git-svn: add --follow-parent and --no-metadata options to fetch
[gitweb.git] / gitweb / gitweb.cgi
index 87ec565f63847cbf6a3815e5f8756bc6a8d1a889..035e76d0a306e0f7dc74f01c8177a53a9286b006 100755 (executable)
@@ -22,13 +22,13 @@ my $my_url = $cgi->url();
 my $my_uri = $cgi->url(-absolute => 1);
 my $rss_link = "";
 
+# location of the git-core binaries
+my $gitbin = "/usr/bin";
+
 # absolute fs-path which will be prepended to the project path
 #my $projectroot = "/pub/scm";
 my $projectroot = "/home/kay/public_html/pub/scm";
 
-# location of the git-core binaries
-my $gitbin = "/usr/bin";
-
 # version of the git-core binaries
 my $git_version = qx($gitbin/git --version);
 if ($git_version =~ m/git version (.*)$/) {
@@ -86,8 +86,9 @@ if (defined $order) {
        }
 }
 
-my $project = $cgi->param('p');
+my $project = ($cgi->param('p') || $ENV{'PATH_INFO'});
 if (defined $project) {
+       $project =~ s|^/||; $project =~ s|/$||;
        $project = validate_input($project);
        if (!defined($project)) {
                die_error(undef, "Invalid project parameter.");
@@ -321,10 +322,12 @@ EOF
                        $searchtext = "";
                }
                my $search_hash;
-               if (defined $hash) {
+               if (defined $hash_base) {
+                       $search_hash = $hash_base;
+               } elsif (defined $hash) {
                        $search_hash = $hash;
                } else {
-                       $search_hash  = "HEAD";
+                       $search_hash = "HEAD";
                }
                $cgi->param("a", "search");
                $cgi->param("h", $search_hash);
@@ -1764,8 +1767,8 @@ sub git_opml {
                }
 
                my $path = esc_html(chop_str($proj{'path'}, 25, 5));
-               my $rss  "$my_url?p=$proj{'path'};a=rss";
-               my $html =  "$my_url?p=$proj{'path'};a=summary";
+               my $rss  = "$my_url?p=$proj{'path'};a=rss";
+               my $html = "$my_url?p=$proj{'path'};a=summary";
                print "<outline type=\"rss\" text=\"$path\" title=\"$path\" xmlUrl=\"$rss\" htmlUrl=\"$html\"/>\n";
        }
        print "</outline>\n".
@@ -1940,7 +1943,7 @@ sub git_commit {
              "<td class=\"link\">" . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=tree;h=$co{'tree'};hb=$hash")}, "tree") .
              "</td>" .
              "</tr>\n";
-       my $parents  = $co{'parents'};
+       my $parents = $co{'parents'};
        foreach my $par (@$parents) {
                print "<tr>" .
                      "<td>parent</td>" .