last committerを取得する

ある条件を満たすスクリプト(大量)のラストコミッタが知りたいと思ったが、Linuxコマンドだけでは難しそう。
ということで、スクリプト書いてみた。

  • last_committer.pl
#!/usr/bin/perl

use strict;
use warnings;

use XML::Simple;

while (<>) {
    chomp;
    next if !( -f $_);

    my $log = `svn log $_ --xml --limit 1`;
    my $xs = XML::Simple->new();
    my $ref = $xs->XMLin($log);

    printf "%s\t%s\n", $_, $ref->{logentry}->{author};
}

あとはgrepの結果をパイプで標準入力に入れてあげればOK。

grep -rl 'hogehoge' ~/script | perl last_commiter.pl


svn logにxmlオプションあるなんて初めて知った。