Skip to contentSkip to conversation

A better way to inform about git clone url. [2de21fac9842650fceb3db68f15711e38fabc3c8]

PATCH New Aneesh Kumar K.V 2 participants 4 messages Jun 15, 2016

lore
Share & tools
lore
#2 lore raw

PATCH 1/1 gitweb: Support multiple clone urls

This one is on top of the last one

Quoted 1 line

From 135f502d7f47f58be5035f2cdb4896dd24adb852 Mon Sep 17 00:00:00 2001

gitweb: Support multiple clone urls

This shows multiple urls if available for git clone

---
 gitweb/gitweb.perl |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)
gitweb/gitweb.perl +13 -7
index 869c53e..501537f 100755
@@ -505,12 +505,13 @@ sub git_get_project_description {
 
 sub git_get_project_cloneurl {
 	my $path = shift;
+	my @cloneurls;
 
 	open my $fd, "$projectroot/$path/cloneurl" or return undef;
-	my $descr = <$fd>;
+	@cloneurls = <$fd>;
 	close $fd;
-	chomp $descr;
-	return $descr;
+
+	return \@cloneurls;
 }
 
 sub git_get_projects_list {
@@ -1665,7 +1666,7 @@ sub git_project_list {
 sub git_summary {
 	my $descr = git_get_project_description($project) || "none";
 	my $head = git_get_head_hash($project);
-	my $cloneurl = git_get_project_cloneurl($project) || "none";
+	my $cloneurls = git_get_project_cloneurl($project);
 	my %co = parse_commit($head);
 	my %cd = parse_date($co{'committer_epoch'}, $co{'committer_tz'});
 
@@ -1679,9 +1680,14 @@ sub git_summary {
 	print "<table cellspacing=\"0\">\n" .
 	      "<tr><td>description</td><td>" . esc_html($descr) . "</td></tr>\n" .
 	      "<tr><td>owner</td><td>$owner</td></tr>\n" .
-	      "<tr><td>last change</td><td>$cd{'rfc2822'}</td></tr>\n" .
-	      "<tr><td>URL</td><td>$cloneurl</td></tr>\n" .
-	      "</table>\n";
+	      "<tr><td>last change</td><td>$cd{'rfc2822'}</td></tr>\n";
+
+	my $url;
+	foreach $url (@$cloneurls) {
+		chomp $url;
+		print "<tr><td>URL</td><td>$url</td></tr>\n";
+	}
+	print "</table>\n";
 
 	open my $fd, "-|", $GIT, "rev-list", "--max-count=17", git_get_head_hash($project)
 		or die_error(undef, "Open git-rev-list failed");
Signature · 1 line
1.4.2.rc1.g83e1-dirty
#3 lore raw

PATCH 1/1 gitweb: Add support for cloneurl.

In reply to Aneesh Kumar K.V
Quoted 4 lines · Aneesh Kumar K.V

http://gitweb.freedesktop.org/?p=PolicyKit.git;a=summary

This shows it in the URL part of each project.
-aneesh

The below patch implements the same. I am not sure whether the approach is the right one. To see the results you can see

http://git.openssi.org/~kvaneesh/gitweb.cgi

-aneesh

Quoted 1 line

From 87503bfc92210ab6791f7a15eba72682d60f74ca Mon Sep 17 00:00:00 2001

Subject: [PATCH] gitweb: Add support for cloneurl.

A new file cloneurl is added below .git directory for each project. The contents of the file is displayed by gitweb as the url which need to be used for git clone.

---
 gitweb/gitweb.perl |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
gitweb/gitweb.perl +12 -0
index b5b89de..869c53e 100755
@@ -503,6 +503,16 @@ sub git_get_project_description {
 	return $descr;
 }
 
+sub git_get_project_cloneurl {
+	my $path = shift;
+
+	open my $fd, "$projectroot/$path/cloneurl" or return undef;
+	my $descr = <$fd>;
+	close $fd;
+	chomp $descr;
+	return $descr;
+}
+
 sub git_get_projects_list {
 	my @list;
 
@@ -1655,6 +1665,7 @@ sub git_project_list {
 sub git_summary {
 	my $descr = git_get_project_description($project) || "none";
 	my $head = git_get_head_hash($project);
+	my $cloneurl = git_get_project_cloneurl($project) || "none";
 	my %co = parse_commit($head);
 	my %cd = parse_date($co{'committer_epoch'}, $co{'committer_tz'});
 
@@ -1669,6 +1680,7 @@ sub git_summary {
 	      "<tr><td>description</td><td>" . esc_html($descr) . "</td></tr>\n" .
 	      "<tr><td>owner</td><td>$owner</td></tr>\n" .
 	      "<tr><td>last change</td><td>$cd{'rfc2822'}</td></tr>\n" .
+	      "<tr><td>URL</td><td>$cloneurl</td></tr>\n" .
 	      "</table>\n";
 
 	open my $fd, "-|", $GIT, "rev-list", "--max-count=17", git_get_head_hash($project)
Signature · 1 line
1.4.2.rc1.g83e1-dirty