|
|
|
@ -35,6 +35,10 @@ our $GIT = "++GIT_BINDIR++/git";
@@ -35,6 +35,10 @@ our $GIT = "++GIT_BINDIR++/git";
|
|
|
|
|
#our $projectroot = "/pub/scm"; |
|
|
|
|
our $projectroot = "++GITWEB_PROJECTROOT++"; |
|
|
|
|
|
|
|
|
|
# fs traversing limit for getting project list |
|
|
|
|
# the number is relative to the projectroot |
|
|
|
|
our $project_maxdepth = "++GITWEB_PROJECT_MAXDEPTH++"; |
|
|
|
|
|
|
|
|
|
# target of the home link on top of all pages |
|
|
|
|
our $home_link = $my_uri || "/"; |
|
|
|
|
|
|
|
|
@ -1509,6 +1513,7 @@ sub git_get_projects_list {
@@ -1509,6 +1513,7 @@ sub git_get_projects_list {
|
|
|
|
|
# remove the trailing "/" |
|
|
|
|
$dir =~ s!/+$!!; |
|
|
|
|
my $pfxlen = length("$dir"); |
|
|
|
|
my $pfxdepth = ($dir =~ tr!/!!); |
|
|
|
|
|
|
|
|
|
File::Find::find({ |
|
|
|
|
follow_fast => 1, # follow symbolic links |
|
|
|
@ -1519,6 +1524,11 @@ sub git_get_projects_list {
@@ -1519,6 +1524,11 @@ sub git_get_projects_list {
|
|
|
|
|
return if (m!^[/.]$!); |
|
|
|
|
# only directories can be git repositories |
|
|
|
|
return unless (-d $_); |
|
|
|
|
# don't traverse too deep (Find is super slow on os x) |
|
|
|
|
if (($File::Find::name =~ tr!/!!) - $pfxdepth > $project_maxdepth) { |
|
|
|
|
$File::Find::prune = 1; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
my $subdir = substr($File::Find::name, $pfxlen + 1); |
|
|
|
|
# we check related file in $projectroot |
|
|
|
|