threads / discuss / 5281

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

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

## tl;dr

4 messages between Aug 15, 2006 and Aug 15, 2006.

replies: 3people: 2as markdown or json

Aneesh Kumar K.V· Aug 15, 2006, 14:28 UTC · re: Aneesh Kumar K.V · lore

[PATCH] gitweb: Add support for cloneurl.

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· Aug 15, 2006, 16:24 UTC · re: Aneesh Kumar K.V · lore

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

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· Aug 15, 2006, 17:23 UTC · re: Jon Loeliger · lore

[PATCH] gitweb: Support multiple clone urls

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

← back to recent threads