2012年9月18日 星期二

[Linux] 讓 GitWeb 的 Owner 顯示支援 Gitolite 的 Creator @ Ubuntu 12.04

最近裝了 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;
}


沒有留言:

張貼留言