# [PATCH] gitweb: fix regression when filtering out forks

2 messages from 2011-10-21 to 2011-10-21. Participants: Julien Muchembled, Jakub Narebski.
Thread: https://gitlist.dev/t/28738

## Julien Muchembled, 2011-10-21 19:04

Subject: [PATCH] gitweb: fix regression when filtering out forks
Message-ID: <1319223861-10803-1-git-send-email-jm@jmuchemb.eu>
URL: https://gitlist.dev/e/1319223861-10803-1-git-send-email-jm%40jmuchemb.eu

```
This fixes a condition in filter_forks_from_projects_list that failed if
process directory was different from project root: in such case, the subroutine
was a no-op and forks were not detected.

Signed-off-by: Julien Muchembled <jm@jmuchemb.eu>
---
 gitweb/gitweb.perl |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 70a576a..206e2a6 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -2875,7 +2875,7 @@ sub filter_forks_from_projects_list {
 		$path =~ s/\.git$//;      # forks of 'repo.git' are in 'repo/' directory
 		next if ($path =~ m!/$!); # skip non-bare repositories, e.g. 'repo/.git'
 		next unless ($path);      # skip '.git' repository: tests, git-instaweb
-		next unless (-d $path);   # containing directory exists
+		next unless (-d "$projectroot/$path"); # containing directory exists
 		$pr->{'forks'} = [];      # there can be 0 or more forks of project
 
 		# add to trie
-- 
1.7.7.731.g3af63.dirty

```

## Jakub Narebski, 2011-10-21 20:51

Subject: Re: [PATCH] gitweb: fix regression when filtering out forks
Message-ID: <201110212251.18810.jnareb@gmail.com>
URL: https://gitlist.dev/e/201110212251.18810.jnareb%40gmail.com
In-Reply-To: <1319223861-10803-1-git-send-email-jm@jmuchemb.eu>

```
On Fri, 21 Oct 2011, Julien Muchembled wrote:

> This fixes a condition in filter_forks_from_projects_list that failed if
> process directory was different from project root: in such case, the subroutine
> was a no-op and forks were not detected.
> 
> Signed-off-by: Julien Muchembled <jm@jmuchemb.eu>

Thanks.

I am embarrassed that I missed this; in the test I have added $projectroot
_is_ current directory for script.  Anyway I have tested this in running
local installation on testsuite, and it now works (i.e. hide forks under
"+" character, where it would not before - gitweb shown every project).

Tested-by: Jakub Narebski <jnareb@gmail.com>

> ---
>  gitweb/gitweb.perl |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 70a576a..206e2a6 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -2875,7 +2875,7 @@ sub filter_forks_from_projects_list {
>  		$path =~ s/\.git$//;      # forks of 'repo.git' are in 'repo/' directory
>  		next if ($path =~ m!/$!); # skip non-bare repositories, e.g. 'repo/.git'
>  		next unless ($path);      # skip '.git' repository: tests, git-instaweb
> -		next unless (-d $path);   # containing directory exists
> +		next unless (-d "$projectroot/$path"); # containing directory exists
>  		$pr->{'forks'} = [];      # there can be 0 or more forks of project
>  
>  		# add to trie
> -- 

-- 
Jakub Narebski
Poland

```
