1

我希望在 GitWeb 项目列表中添加对每个项目进行最后一次提交的人的姓名,而不是

14 min ago

它说的是

14 min ago (Someone's Name)

我已经查看gitweb.cgi并找到了写入字符串的点(我的第 5488 行),但我真的不知道如何继续。

有人已经这样做了吗?或者谁能​​提供一个快速的解决方案?

4

1 回答 1

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" .
于 2012-07-09T11:50:40.983 回答