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

4 messages from 2006-08-15 to 2006-08-15. Participants: Aneesh Kumar K.V, Jon Loeliger.
Thread: https://gitlist.dev/t/5281

## Aneesh Kumar K.V, 2006-08-15 06:27

Subject: A better way to inform about git clone url. [2de21fac9842650fceb3db68f15711e38fabc3c8]
Message-ID: <ebrpfs$grn$1@sea.gmane.org>
URL: https://gitlist.dev/e/ebrpfs%24grn%241%40sea.gmane.org

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

This shows it in the URL part of each project. 

-aneesh 

```

## Aneesh Kumar K.V, 2006-08-15 14:28

Subject: [PATCH] gitweb: Add support for cloneurl.
Message-ID: <44E1DA0C.80602@gmail.com>
URL: https://gitlist.dev/e/44E1DA0C.80602%40gmail.com
In-Reply-To: <ebrpfs$grn$1@sea.gmane.org>

```
Aneesh Kumar K.V wrote:
> 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


>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.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com>
---
 gitweb/gitweb.perl |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index b5b89de..869c53e 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -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)
-- 
1.4.2.rc1.g83e1-dirty


```

## Jon Loeliger, 2006-08-15 16:24

Subject: Re: A better way to inform about git clone url. [2de21fac9842650fceb3db68f15711e38fabc3c8]
Message-ID: <1155659063.10054.65.camel@cashmere.sps.mot.com>
URL: https://gitlist.dev/e/1155659063.10054.65.camel%40cashmere.sps.mot.com
In-Reply-To: <ebrpfs$grn$1@sea.gmane.org>

```
On Tue, 2006-08-15 at 01:27, Aneesh Kumar K.V wrote:
> http://gitweb.freedesktop.org/?p=PolicyKit.git;a=summary
> 
> This shows it in the URL part of each project. 

Oh yes.  ++Vote.

jdl

```

## Aneesh Kumar K.V, 2006-08-15 17:23

Subject: [PATCH] gitweb: Support multiple clone urls
Message-ID: <ebsvuq$de5$1@sea.gmane.org>
URL: https://gitlist.dev/e/ebsvuq%24de5%241%40sea.gmane.org
In-Reply-To: <1155659063.10054.65.camel@cashmere.sps.mot.com>

```
This one is on top of the last one 



>From 135f502d7f47f58be5035f2cdb4896dd24adb852 Mon Sep 17 00:00:00 2001
gitweb: Support multiple clone urls

This shows multiple urls if available for git clone

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com>
---
 gitweb/gitweb.perl |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 869c53e..501537f 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -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");
-- 
1.4.2.rc1.g83e1-dirty


```
