[PATCH] More flexible URL patterns for gitweb

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



@git_base_url_list hardcodes URLs in the form "$git_base_url/$project",
which makes impossible to generate proper URLs for SSH access scenarios.

This patch implements a more flexible replacement scheme, using a
simple placeholder for the project path, and fixes the associated
documentation.

Signed-off-by: Damien Tournoud <damien@xxxxxxxxxxxx>
---
 gitweb/README      |   13 ++++++-------
 gitweb/gitweb.perl |    2 +-
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/gitweb/README b/gitweb/README
index ad6a04c..f16729c 100644
--- a/gitweb/README
+++ b/gitweb/README
@@ -197,13 +197,12 @@ not include variables usually directly set during build):
    full description is available as 'title' attribute (usually shown on
    mouseover).  By default set to 25, which might be too small if you
    use long project descriptions.
- * @git_base_url_list
-   List of git base URLs used for URL to where fetch project from, shown
-   in project summary page.  Full URL is "$git_base_url/$project".
-   You can setup multiple base URLs (for example one for  git:// protocol
-   access, and one for http:// "dumb" protocol access).  Note that per
-   repository configuration in 'cloneurl' file, or as values of gitweb.url
-   project config.
+ * @git_base_url_patterns
+   List of git base URLs patterns used to build the URLs displayed in the
+   project summary page. Examples include "git://git.example.com/%project",
+   "http://git.example.com/%project"; and "git@xxxxxxxxxxxxxxx:%project".
+   Note that per repository configuration in a 'cloneurl' file, or configuration
+   values of gitweb.url in the project config take precedence over this.
  * $default_blob_plain_mimetype
    Default mimetype for blob_plain (raw) view, if mimetype checking
    doesn't result in some other type; by default 'text/plain'.
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index c356e95..0fc5957 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -4904,7 +4904,7 @@ sub git_summary {
 	# or make project git URL from git base URL and project name
 	my $url_tag = "URL";
 	my @url_list = git_get_project_url_list($project);
-	@url_list = map { "$_/$project" } @git_base_url_list unless @url_list;
+	@url_list = map { my $url = $_; $url =~ s/%project/$project/g; $url } @git_base_url_list unless @url_list;
 	foreach my $git_url (@url_list) {
 		next unless $git_url;
 		print "<tr class=\"metadata_url\"><td>$url_tag</td><td>$git_url</td></tr>\n";
-- 
1.6.5.7

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]