T

Subversion試用中

Subversionのpost-commitはこんな風にした。

Subversionは環境変数LANGを与えるとメッセージをUTF-8から変換してくれる。コミットされたファイル毎にBTSに突っ込んだり、追加だったらそれなりの処理をしたりする部分については別途ファイルを分けておいたのでここでは省略。新規に追加された場合は、パーミッションの情報を別途管理するスクリプトに追記するようメールが飛んだりする。原始的だけど、とりあえずこれでやってみよう。

#!/usr/bin/php -q
<?php

//引数を取得($1がレポジトリ、$2がリビジョン)
if(is_array($argv)){
    $repo = $argv[1];
    $rev = $argv[2];
}elseif(is_array($_SERVER['argv'])){
    $repo = $_SERVER['argv'][1];
    $rev = $_SERVER['argv'][2];
}

if($repo == '' || $rev == ''){
    //エラー処理(省略)
}

//変更者
$author = `svnlook author $repo`;

//コメント
$comment = `export LANG=ja_JP.eucJP && svnlook info $repo`;

//変更されたファイルを取得。複数ある場合はそれぞれに対応
$changed = `svnlook changed $repo`;
if($changed != ''){
    $changed_ar = split("\n", $changed);
}

//コミット後の処理(ファイル毎に実行)
if(is_array($changed_ar)){
    foreach($changed_ar as $v){
        $trimed = trim($v);
        if($trimed){
                //メール送信処理(省略)

                //リリースファイル一覧更新(省略)
        }
    }
 }else{
     $notice = 'not array';
}

?>

Posted by on 2月 27, 2007 in PHP, Subversion

コメントを残す