我想在GitWeb项目列表中添加最后一次提交给每个项目的人的名字,而不是
14 min ago
它说像
14 min ago (Someone's Name)
我查看了gitweb.cgi
并找到了写字符串的位置(我的第5488行),但我真的不知道如何继续。
有没有人这样做过?或者任何人都可以提供快速解决方案吗?
答案 0 :(得分:2)
感谢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" .