From: Dongsheng Song Date: Sun, 09 Feb 2014 03:19:45 GMT Subject: Re: gitweb.cgi bug Message-ID: In-Reply-To: <0FE68796-BA98-4DF7-AD30-C42D78A87DCE@kellerfarm.com> On Sun, Feb 9, 2014 at 12:29 AM, Andrew Keller wrote: > On Feb 8, 2014, at 8:37 AM, Dongsheng Song wrote: > >> I have an git repo PROJECT.git, the full path is /srv/repo/git/PROJECT.git, >> when I set git_base_url_list in gitweb.conf: >> >> @git_base_url_list = qw(https://192.168.30.239/repo/git >> git@192.168.30.239:repo/git); >> >> I got the result: >> >> https://192.168.30.239/repo/git/PROJECT.git >> git@192.168.30.239:/PROJECT.git >> >> This is wrong, it should be (without the leading '/') >> git@192.168.30.239:PROJECT.git > > There is no way to generate a fetch url of 'git@192.168.30.239:PROJECT.git' in gitweb. > > If one of the base urls was 'git@192.168.30.239:.', then you could get a fetch URL of 'git@192.168.30.239:./PROJECT.git' > > In general, though, I like to stay away from relative paths. Weird things can happen, like HTTP works but SSH doesn't, because the home directory for SSH changed because you used a different user. > > - Andrew > What's about the following translate rules ? git@192.168.30.239: -> git@192.168.30.239:PROJECT.git git@192.168.30.239:/ -> git@192.168.30.239:/PROJECT.git git@192.168.30.239:/repo -> git@192.168.30.239:/repo/PROJECT.git git@192.168.30.239:/repo/ -> git@192.168.30.239:/repo/PROJECT.git I don't know Perl, but I think change the following translate code is not a hard work: # use per project git URL list in $projectroot/$project/cloneurl # or make project git URL from git base URL and project name my $url_tag = "URL"; my @url_list = git_get_project_url_list($project); @url_list = map { "$_/$project" } @git_base_url_list unless @url_list; foreach my $git_url (@url_list) { next unless $git_url; print format_repo_url($url_tag, $git_url); $url_tag = ""; } Regards, Dongsheng