Hi... I just started to use gitweb and saw that there isn`t in the git-tree of gitweb the feature of that link to the git url (wich we can see in git.kernel.org:D - I didn`t understand it, was that changed/done only for kernel.org?). I also have a specific need. I work with my laptop and there I keep some git repositories, these repositories are shared/published with some coworkers but as it`s a notebook the network environment normally changes depending where I`m, so I implemented a placeholder for cloneurl file. Gitweb will change #localhost# by server_name. If your git repositories aren`t in your local machine or if your gitweb is hosted in a specific server what you have to do (in fact what you don`t have to do :D) is just not use it. >From 32da24e1e18a1c5f32bfa0afdbcb6d0f2b0432f3 Mon Sep 17 00:00:00 2001 From: Leandro Dorileo <dorileo@xxxxxxxxxxxxxxxx> Date: Sat, 28 Jul 2007 15:34:20 -0400 Subject: [PATCH] gitweb: localhost placeholder parser for cloneurl file Implementation of a localhost placeholder parsing in git_get_project_url_list. It`s useful in cases of gitweb being hosted in a work-station (like a notebook) used in a local team development environment and, implementation of a git-url link in the git project list body like in git.kernel.org. --- gitweb/gitweb.perl | 21 ++++++++++++++++++--- 1 files changed, 18 insertions(+), 3 deletions(-) diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index b381692..281d823 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1471,7 +1471,16 @@ sub git_get_project_url_list { my @git_project_url_list = map { chomp; $_ } <$fd>; close $fd; - return wantarray ? @git_project_url_list : \@git_project_url_list; + if(wantarray){ + for(my $i = 0; $i < @git_project_url_list; $i++){ + if(index(@git_project_url_list[$i], "#localhost#") != -1){ + @git_project_url_list[$i] =~ s/#localhost#/server_name()/eg; + } + } + return @git_project_url_list; + }else{ + return \@git_project_url_list; + } } sub git_get_projects_list { @@ -3384,8 +3393,14 @@ sub git_project_list_body { $cgi->a({-href => href(project=>$pr->{'path'}, action=>"shortlog")}, "shortlog") . " | " . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"log")}, "log") . " | " . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"tree")}, "tree") . - ($pr->{'forks'} ? " | " . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"forks")}, "forks") : '') . - "</td>\n" . + ($pr->{'forks'} ? " | " . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"forks")}, "forks") : ''); + + my @url_list = git_get_project_url_list($pr->{'path'}); + if(@url_list != 0){ + print " | " . $cgi->a({-href => @url_list[0]}, "git"); + } + + print "</td>\n" . "</tr>\n"; } if (defined $extra) { -- 1.5.2.4 -- Dorileo - 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