Skip to content

Commit e79ca7c

Browse files
jnarebJunio C Hamano
authored andcommitted
gitweb: Add support for per project git URLs
It is now possible for project to have individual clone/fetch URLs. They are provided in new file 'cloneurl' added below project's $GIT_DIR directory. If there is no cloneurl file, concatenation of git base URLs with project name is used. This is merge of Jakub Narebski and David Rientjes gitweb: Show project's git URL on summary page with Aneesh Kumar gitweb: Add support for cloneurl. gitweb: Support multiple clone urls patches. Signed-off-by: Jakub Narebski <[email protected]> Signed-off-by: Aneesh Kumar K.V <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 1c2a4f5 commit e79ca7c

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

gitweb/gitweb.perl

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,16 @@ sub git_get_project_description {
533533
return $descr;
534534
}
535535

536+
sub git_get_project_url_list {
537+
my $path = shift;
538+
539+
open my $fd, "$projectroot/$path/cloneurl" or return undef;
540+
my @git_project_url_list = map { chomp; $_ } <$fd>;
541+
close $fd;
542+
543+
return wantarray ? @git_project_url_list : \@git_project_url_list;
544+
}
545+
536546
sub git_get_projects_list {
537547
my @list;
538548

@@ -1697,10 +1707,14 @@ sub git_summary {
16971707
"<tr><td>description</td><td>" . esc_html($descr) . "</td></tr>\n" .
16981708
"<tr><td>owner</td><td>$owner</td></tr>\n" .
16991709
"<tr><td>last change</td><td>$cd{'rfc2822'}</td></tr>\n";
1710+
# use per project git URL list in $projectroot/$project/cloneurl
1711+
# or make project git URL from git base URL and project name
17001712
my $url_tag = "URL";
1701-
foreach my $git_base_url (@git_base_url_list) {
1702-
next unless $git_base_url;
1703-
print "<tr><td>$url_tag</td><td>$git_base_url/$project</td></tr>\n";
1713+
my @url_list = git_get_project_url_list($project);
1714+
@url_list = map { "$_/$project" } @git_base_url_list unless @url_list;
1715+
foreach my $git_url (@url_list) {
1716+
next unless $git_url;
1717+
print "<tr><td>$url_tag</td><td>$git_url</td></tr>\n";
17041718
$url_tag = "";
17051719
}
17061720
print "</table>\n";

0 commit comments

Comments
 (0)