Linuxのファイルシステムを詳解します

FrontPage > Japanese Linux hacker > git-scan.0.9.2.pl

gitでJapanese patchを抽出するPerl script(β版)20070730

gitコマンドを利用できる場所で使用してください。
これを使うことで、Japanese Linux hackerのページにあるように
各社のpatch数など、集計できます。
ただし、kernel patchを出す、新しい方が出てきた場合は、
リストに追加しなければなりませんが。。。
デバッグ用コードとか入ってますが、ベータ版ってことで。。
改善patch歓迎します。
作成者 yos.takahashi(20070730)

script

#!/usr/bin/perl -w
if (@ARGV >= 1) {
$gitlog_start = $ARGV[0];
$gitlog_end = $ARGV[1];
}
else {
$gitlog_start = "2.6.12-rc2";
$gitlog_end = "2.6.22-rc7";
}

#--------------- CHECK tag ---------------------------
@main_count = ( );
$japantotal = 0;
$suse = 0;
$toshiba = 1;
$fujitsu = 2;
$miraclelinux = 3;
$keiou = 4;
$tripeaks = 5;
$ntt = 6;
$nec = 7;
$naist = 8;
$renesas = 9;
$sios = 10;
$debian = 11;
$sony = 12;
$yokoga = 13;
$hitachi = 14;
$ibm = 15;
$google = 16;
$itochu = 17;
$redhat = 18;
$valinux = 19;
$montavista = 20;
$panasonic = 21;
$nokia = 22;
$fsecure = 23;
$densan = 24;
$toudai = 25;
$kyusyu = 26;
$OTHERJAPAN = 27;
$OTHER = 28;
@month_list = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);
@month_cp_list = (" 1", " 2", " 3", " 4", " 5", " 6", " 7", " 8", " 9", "10", "11", "12");

$title[$debian] = 'debian ';
$title[$miraclelinux] = 'miraclelinux ';
$title[$redhat] = 'redhat ';
$title[$suse] = 'SuSE ';
$title[$valinux] = 'valinux ';
$title[$montavista] = 'montavista ';
$title[$nec] = 'NEC ';
$title[$ibm] = 'IBM ';
$title[$ntt] = 'NTT ';
$title[$google] = 'google ';
$title[$sony] = 'sony ';
$title[$tripeaks] = 'tripeaks ';
$title[$toshiba] = '東芝 ';
$title[$hitachi] = '日立 ';
$title[$fujitsu] = '富士通 ';
$title[$panasonic] = '松下電器 ';
$title[$renesas] = 'ルネサステクノロジ ';
$title[$nokia] = 'ノキア・ジャパン ';
$title[$yokoga] = '横河電機 ';
$title[$itochu] = '伊藤忠テクノソリューションズ';
$title[$fsecure] = '日本F-Secure ';
$title[$sios] = 'SIOS Technology ';
$title[$densan] = '電産 ';
$title[$toudai] = '東京大学情報基盤センター ';
$title[$naist] = '奈良先端大学 ';
$title[$keiou] = '慶應義塾大学 ';
$title[$kyusyu] = '九州大学 ';
$title[$OTHERJAPAN] = 'OTHER JAPAN ';
$title[$OTHER] = 'OTHER ';
sub check_name {
my $name = $_[0];
my $cwork = $_[1];
my $date = $_[2];
my $work = $OTHER;
if ($name =~ m/A.YOSHIYAMA/i) { $work = $debian; }
elsif ($name =~ m/Akinobu Mita/i) { $work = $miraclelinux; }
elsif ($name =~ m/Akira Iguchi/i) { $work = $toshiba; }
elsif ($name =~ m/Akiyama, Nobuyuki/i) { $work = $fujitsu; }
elsif ($name =~ m/ASANO Masahiro/i) { $work = $nec; }
elsif ($name =~ m/Atsushi Nemoto/i) { $work = $toshiba; }
elsif ($name =~ m/Daikichi Osuga/i) { $work = $ntt; }
elsif ($name =~ m/FUJITA Tomonori/i) { $work = $ntt; }
elsif ($name =~ m/Gen FUKATSU/i) { $work = $panasonic; }
elsif ($name =~ m/GOTO Masanori/i) { $work = $google; }
elsif ($name =~ m/Hideaki YOSHIFUJI/i) { $work = $keiou; }
elsif ($name =~ m/Hideki Iwamoto/i) { $work = $OTHERJAPAN; }
elsif ($name =~ m/Hideki Yamane/i) { $work = $debian; }
elsif ($name =~ m/Hideo AOKI/i) { $work = $redhat; }
elsif ($name =~ m/Hideo Saito/i) { $work = $densan; }
elsif ($name =~ m/Hidetoshi Seto/i) { $work = $fujitsu; }
elsif ($name =~ m/Hifumi Hisashi/i) { $work = $ntt; }
elsif ($name =~ m/Hiro Yoshioka/i) { $work = $miraclelinux; }
elsif ($name =~ m/Hirokazu Takata/i) { $work = $renesas; }
elsif ($name =~ m/Hiroki Kaminaga/i) { $work = $sony; }
elsif ($name =~ m/Hiroshi DOYU/i) { $work = $nokia; }
elsif ($name =~ m/Hiroshi Miura/i) { $work = $panasonic; }
elsif ($name =~ m/Hiroyuki YAMAMORI/i) { $work = $OTHERJAPAN; }
elsif ($name =~ m/Hironobu Ishii/i) { $work = $fujitsu; }
elsif ($name =~ m/IKEDA, Munehiro/i) { $work = $nec; }
elsif ($name =~ m/Ishimatsu Yasuaki/i) { $work = $fujitsu; }
elsif ($name =~ m/Ishizaki Kou/i) { $work = $toshiba; }
elsif ($name =~ m/Jun Komuro/i) { $work = $OTHERJAPAN; }
elsif ($name =~ m/Jun'ichi Nomura/i) { $work = $nec; }
elsif ($name =~ m/KaiGai Kohei/i) { $work = $nec; }
elsif ($name =~ m/KAMEZAWA Hiroyuki/i) { $work = $fujitsu; }
elsif ($name =~ m/Kawai, Hidehiro/i) { $work = $hitachi; }
elsif ($name =~ m/Kaz Kojima/i) { $work = $OTHERJAPAN; }
elsif ($name =~ m/Kazunori Asayama/i) { $work = $sony; }
elsif ($name =~ m/Kazunori MIYAZAWA/i) { $work = $yokoga; }
elsif ($name =~ m/Keiichiro Tokunaga/i) { $work = $fujitsu; }
elsif ($name =~ m/Kenich Nagai/i) { $work = $OTHERJAPAN; }
elsif ($name =~ m/Ken-ichirou MATSUZAWA/i) { $work = $OTHERJAPAN; }
elsif ($name =~ m/Kenji Kaneshige/i) { $work = $fujitsu; }
elsif ($name =~ m/Kenzo Iwami/i) { $work = $nec; }
elsif ($name =~ m/Kiyoshi Ueda/i) { $work = $nec; }
elsif ($name =~ m/Kouta Ooizumi/i) { $work = $nec; }
elsif ($name =~ m/Kou Ishizaki/i) { $work = $toshiba; }
elsif ($name =~ m/KUROSAWA Takahiro/i) { $work = $valinux; }
elsif ($name =~ m/MAEDA Naoaki/i) { $work = $fujitsu; }
elsif ($name =~ m/Masahito Omote/i) { $work = $OTHERJAPAN; }
elsif ($name =~ m/Masahide NAKAMURA/i) { $work = $naist; }
elsif ($name =~ m/Masakazu Mokuno/i) { $work = $sony; }
elsif ($name =~ m/Masami Hiramatsu/i) { $work = $hitachi; }
elsif ($name =~ m/Masashi Kimoto/i) { $work = $sony; }
elsif ($name =~ m/Masatake YAMATO/i) { $work = $naist; }
elsif ($name =~ m/Masato Noguchi/i) { $work = $sony; }
elsif ($name =~ m/Masayuki Nakagawa/i) { $work = $nec; }
elsif ($name =~ m/Mitsuru Chinen/i) { $work = $ibm; }
elsif ($name =~ m/Mitsuru KANDA/i) { $work = $toshiba; }
elsif ($name =~ m/MUNEDA Takahiro/i) { $work = $fujitsu; }
elsif ($name =~ m/NAKAMURA Kenta/i) { $work = $kyusyu; }
elsif ($name =~ m/Nobuhiro Iwamatsu/i) { $work = $debian; }
elsif ($name =~ m/Noriaki TAKAMIYA/i) { $work = $ntt; }
elsif ($name =~ m/Norihiko Tomiyama/i) { $work = $itochu; }
elsif ($name =~ m/Ryusuke Konishi/i) { $work = $ntt; }
elsif ($name =~ m/Ryusuke Sakato/i) { $work = $renesas; }
elsif ($name =~ m/OGAWA Hirofumi/i) { $work = $miraclelinux; }
elsif ($name =~ m/Ryo Dairiki/i) { $work = $OTHERJAPAN; }
elsif ($name =~ m/Satoru Takeuchi/i) { $work = $fujitsu; }
elsif ($name =~ m/Satoshi Oshima/i) { $work = $redhat; }
elsif ($name =~ m/Seiji Munetoh/i) { $work = $ibm; }
elsif ($name =~ m/Shuya MAEDA/i) { $work = $nec; }
elsif ($name =~ m/SUGIOKA Toshinobu/i) { $work = $itochu; }
elsif ($name =~ m/TAKADA Yoshihito/i) { $work = $OTHERJAPAN; }
elsif ($name =~ m/Takashi Iwai/i) { $work = $suse; }
elsif ($name =~ m/Takashi Ohmasa/i) { $work = $OTHERJAPAN; }
elsif ($name =~ m/Takashi Sato/i) { $work = $nec; }
elsif ($name =~ m/Takashi YOSHII/i) { $work = $hitachi; }
elsif ($name =~ m/Takamasa Ohtake/i) { $work = $nec; }
elsif ($name =~ m/Takao Shinohara/i) { $work = $sony; }
elsif ($name =~ m/Taku Izumi/i) { $work = $fujitsu; }
elsif ($name =~ m/Tamuki Shoichi/i) { $work = $fujitsu; }
elsif ($name =~ m/Tetsuo Handa/i) { $work = $ntt; }
elsif ($name =~ m/Tetsuo Takata/i) { $work = $ntt; }
elsif ($name =~ m/Teru KAMOGASHIRA/i) { $work = $toudai; }
elsif ($name =~ m/Tsuneo.Yoshioka/i) { $work = $fsecure; }
elsif ($name =~ m/Tsutomu Fujii/i) { $work = $nec; }
elsif ($name =~ m/Toshimune Konno/i) { $work = $OTHERJAPAN; }
elsif ($name =~ m/Toshinobu Sugioka/i) { $work = $itochu; }
elsif ($name =~ m/Toshiyuki Okajima/i) { $work = $fujitsu; }
elsif ($name =~ m/Toyo Abe/i) { $work = $montavista; }
elsif ($name =~ m/Tsugikazu Shibata/i) { $work = $nec; }
elsif ($name =~ m/Utako Kusaka/i) { $work = $nec; }
elsif ($name =~ m/YAMAMOTO Takashi/i) { $work = $valinux; }
elsif ($name =~ m/Yasunori Goto/i) { $work = $fujitsu; }
elsif ($name =~ m/Yasuaki Ishimatsu/i) { $work = $fujitsu; }
elsif ($name =~ m/Yasuyuki Kozakai/i) { $work = $toshiba; }
elsif ($name =~ m/Yoichi Yuasa/i) { $work = $tripeaks; }
elsif ($name =~ m/YOSHIFUJI Hideaki/i) { $work = $keiou; }
elsif ($name =~ m/Yoshifumi Nishida/i) { $work = $sony; }
elsif ($name =~ m/Yoshihiro Shimoda/i) { $work = $renesas; }
elsif ($name =~ m/Yoshimi Ichiyanagi/i) { $work = $ntt; }
elsif ($name =~ m/Yoshinori Sato/i) { $work = $sios; }
if ($work != $OTHER) {
# if ($work == $OTHERJAPAN) {
print "$date, $cwork, $name\n";
# }
$japantotal++
}
return $work;
}

sub change_date {
my $work = $_[0];
my $year = substr($work, (length($work) - 4), 4);
my $mon = substr($work, 0, 3);
my $day = substr($work, (length($work) - 16), 11);
my $i;
my $month = "00";

for( $i=0 ; $i <= $#month_list ; $i++ ){
if ($mon =~ m/$month_list[$i]/i) {
$month = $month_cp_list[$i];
}
}
$date = "$year/$month/$day";
return $date;
}

sub printall {
my $j;
for ($j=0; $j <= $#title ; $j++ ) {
print "$title[$j]\t$main_count[$j]\n";
}
print "JAPAN TOTAL $japantotal \n";
}

sub cleanall {
my $j;
for ($j=0; $j <= $#title ; $j++ ) {
$main_count[$j] = 0;
}
}

sub main {
my $data;
my $find = 0;
my $work;
my $cwork;
my $index;
my $date;

&cleanall;
$data = `git log v$gitlog_start..v$gitlog_end`;
while ( ( $find = index ($data, "commit", $find ) ) >= 0 ) {
$cwork = substr($data, ($find + 7), (index($data, "\n", $find) - $find - 7));
if (length($cwork) == 40) {
$find = index ($data, "Author", $find );
$work = substr($data, $find, (index($data, "\n", $find) - $find));
$find = index ($data, "Date", $find );
$date = substr($data, ($find + 12), (index($data, "\n", $find) - $find - 18));
$date = &change_date($date);
$index = &check_name($work, $cwork, $date);
$main_count[$index]++;
}
$find++;
}
&printall;
}

main;
タグ

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

関連ソフト/文書

Firefox3 Meter  Use OpenOffice.org

管理人/副管理人のみ編集できます