我希望在 GitWeb 项目列表中添加对每个项目进行最后一次提交的人的姓名,而不是
14 min ago
它说的是
14 min ago (Someone's Name)
我已经查看gitweb.cgi
并找到了写入字符串的点(我的第 5488 行),但我真的不知道如何继续。
有人已经这样做了吗?或者谁能提供一个快速的解决方案?
感谢 simbabque 指点我git_get_last_activity
。我的解决方案(可能是次优的,如果是,请告诉我):
更改git_get_last_activity
为
sub git_get_last_activity {
my ($path) = @_;
my $fd;
$git_dir = "$projectroot/$path";
open($fd, "-|", git_cmd(), 'for-each-ref',
'--format=%(committer)',
'--sort=-committerdate',
'--count=1',
'refs/heads') or return;
my $most_recent = <$fd>;
close $fd or return;
if (defined $most_recent &&
$most_recent =~ / (\d+) [-+][01]\d\d\d$/) {
my $bracket_position = rindex($most_recent, "<");
my $committer_name = substr($most_recent, 0, $bracket_position - 1);
my $timestamp = $1;
my $age = time - $timestamp;
return ($age, age_string($age), $committer_name);
}
return (undef, undef, undef);
}
然后搜索稍后调用的位置(应该只有一次)并更改
($pr->{'age'}, $pr->{'age_string'}) = @activity;
成为
($pr->{'age'}, $pr->{'age_string'}, $pr->{'committer'}) = @activity;
然后git_project_list_rows
去换
(defined $pr->{'age_string'} ? $pr->{'age_string'} : "No commits") . "</td>\n" .
至
(defined $pr->{'age_string'} ? $pr->{'age_string'} . ' (' . $pr->{'committer'} . ')' : "No commits") . "</td>\n" .