最近裝了 3 次 Git + Gitweb + Gitolite ,最後就順手稍微修改 Gitweb 。由於 Gitolite 可以 remote create repos ,因此想要讓 Gitweb 顯示誰建立了 repo 。而 Gitolite 會在 repo 中建立一個 gl-creator 檔案記錄誰建立的,所以只需修改 Gitweb 顯示 owner 的片段程式即可。

目前用的 gitweb 版本:

$ sudo dpkg -l | grep gitweb
ii gitweb 1:1.7.9.5-1 fast, scalable, distributed revision control system (web interface)

修改片段:

$ sudo vim /usr/share/gitweb/index.cgi
sub git_get_project_owner {
       my $project = shift;
       my $owner;

       return undef unless $project;
       $git_dir = "$projectroot/$project";

       if (!defined $gitweb_project_owner) {
              git_get_project_list_from_file();
       }

       if (exists $gitweb_project_owner->{$project}) {
              $owner = $gitweb_project_owner->{$project};
       }
       if (!defined $owner){
              $owner = git_get_project_config('owner');
       }
       if (!defined $owner) {
              if( open(GLCreator, "$git_dir/gl-creator" ) ) {
                     $owner = '';
                     while(<GLCreator>) {
                            $owner .= $_;
                     }
                     close(GLCreator);
              }
       }
       if (!defined $owner) {
              $owner = get_file_owner("$git_dir");
       }

       return $owner;
}


, , , ,

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()