Junio C Hamano [off-list ref] writes:
I am getting
7ad1b64084ff003f71fe749a3e5a74d071a193d8 is the first bad commit
commit 7ad1b64084ff003f71fe749a3e5a74d071a193d8
Author: Bernhard R. Link [off-list ref]
Date: Mon Jan 30 21:05:47 2012 +0100
gitweb: move hard coded .git suffix out of git_get_projects_list
*** t9502-gitweb-standalone-parse-output.sh ***
...
not ok - 14 forks: "forks" action for forked repository
#
# gitweb_run "p=foo.git;a=forks" &&
# grep -q ">foo/foo-forked\\.git<" gitweb.body &&
# grep -q ">fork of foo<" gitweb.body
#
ok 15 - forks: can access forked repository
ok 16 - forks: project_index lists all projects (incl. forks)
# failed 1 among 16 test(s)
The output file gitweb.body has this in it:
<div class="page_body">
<br /><br />
404 - No forks found
<br />
</div>
<div class="page_footer">
And of course the culprit turns out to be that "cute" expression.
-- >8 --
Subject: gitweb: do not use assignment with regexp replace in parameter
A recent patch made the code to generate a parameter to git_get_projects_list
a bit too cute, by introducing a new variable, assigning a value to it, and
then munging that value with s/// replacement, all in the parameter list.
The whole expression returns the number of replacements, not the resulting
value in the variable after s/// operation.
Split them into separate expressions, which also would make the resulting
lines shorter and less taxing on the brain.
Signed-off-by: Junio C Hamano <redacted>
---
gitweb/gitweb.perl | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index b764d51..e074cd7 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -6003,7 +6003,9 @@ sub git_forks {
die_error(400, "Unknown order parameter");
}
- my @list = git_get_projects_list((my $filter = $project) =~ s/\.git$//);
+ my $filter = $project;
+ $filter =~ s/\.git$//;
+ my @list = git_get_projects_list($filter);
if (!@list) {
die_error(404, "No forks found");
}@@ -6062,7 +6064,9 @@ sub git_summary {
if ($check_forks) {
# find forks of a project
- @forklist = git_get_projects_list((my $filter = $project) =~ s/\.git$//);
+ my $filter = $project;
+ $filter =~ s/\.git$//;
+ @forklist = git_get_projects_list($filter);
# filter out forks of forks
@forklist = filter_forks_from_projects_list(\@forklist)
if (@forklist);